for y := 0 to newBmp.Height - 1 do
begin
p := newBmp.scanline[y];
for x := 0 to newBmp.Width - 1 do
begin
p[x*3]:=p[x*3]+2;
end;这种方法,改变了p的值,就自动存到newBmp了,但如果改变了尺寸,每4个像素合成1个,该怎么做呢。
解决方案 »
- 请教adoquery更新问题,100分请教~
- 关于注销登陆出错的问题!!!
- 我到底错在哪
- Delphi中,大家一般用什么报表?水晶报表、FastReport、QuickReport?
- 有谁知道怎样才能怎样才能使在TDxDBGrid控件中,拖中右面的的滚动条向下时,使DBGRID中的原选中列定住,不随滚动条滚动
- 关于调用应用服务器的方法
- 怎么用Delphi来控制powerpoint呢?UP有分,不够再给~
- 在 win2000下,为什么我用movefileex()或movefile()把一个目录下的文件移动到另一个目录不行!急!
- 大家好呀,看一下我的网站吧,关于delphi的,
- 在TWebBrowser控件中如何对HTML先进行处理再让它显示
- 救急!!“未指定的错误” help 不懂帮顶 谢了
- 如何做到 edit1.text:=(取上面汇总列(总计)的值)
for y := 0 to newBmp.Height - 1 do
begin
p := newBmp.scanline[y];
for x := 0 to newBmp.Width - 1 do
begin
B[x][y]:=p[x*3];
G[x][y]:=p[x*3+1];
R[x][y]:=p[x*3+2];
end;
end; for y := 0 to (newBmp.Height - 1) div 2 do //动态数组下标从0开始
begin
New_p := newBmp.scanline[y];
for x := 0 to (newBmp.Width - 1) div 2 do
begin
New_p[x*3]:= (B[y*2][x*2]+B[y*2][x*2+1]+B[y*2+1][x*2]+B[y*2+1][x*2+1]) div 4;
New_p[x*3+1]:=(G[y*2][x*2]+G[y*2][x*2+1]+G[y*2+1][x*2]+G[y*2+1][x*2+1]) div 4;
New_p[x*3+2]:=(R[y*2][x*2]+R[y*2][x*2+1]+R[y*2+1][x*2]+R[y*2+1][x*2+1]) div 4;
end;
end;
Image2.Picture.Bitmap.Assign(newBmp);但显示时,左上脚1/4是缩小的图,其余3/4是原图。我特地换了个变量New_p呢,怎么消除原图啊。
for y := (newBmp.Height - 1) div 2 to (newBmp.Height - 1) do //动态数组下标从0开始
begin
New_p := newBmp.scanline[y];
for x := (newBmp.Height - 1) div 2 to (newBmp.Height - 1) do
begin
New_p[x*3]:= 255;
New_p[x*3+1]:=255;
New_p[x*3+2]:=255;
end;
end;