图形恢复问题,能实现吗?(100分)

  • 主题发起人 主题发起人 fire214
  • 开始时间 开始时间
F

fire214

Unregistered / Unconfirmed
GUEST, unregistred user!
我知道一副图像每一个像素点的RGB值,用什么方法或函数才能把图像从新绘制出来那?
解释一下好吗?
 
肯定可以!
假如你的图片宽度和高度是W,H;

var
Bmp:TBitmap;
I,J:Integer;
begin
Bmp:=TBitmap.Create;
Bmp.Width:=W;
Bmp.Height:=H;
for I:=0 to Bmp.Height-1 do
for J:=0 to Bmp.Width-1 do
Bmp.Canvas.Pixels[I,J]:=RGB(R,G,B);//你点(I,J)对应的的RGB值
Canvas.Draw(0,0,Bmp);//显示图片
Bmp.Free;
end;
 
用scanline的速度块些
 
不错!不是快一点,是快很多!
用ScanLine改写如下
var
Bmp:TBitmap;
I,J:Integer;
P:PByteArray;
begin
Bmp:=TBitmap.Create;
Bmp.PixelFormat:=pf24bit;
Bmp.Width:=W;
Bmp.Height:=H;
for I:=0 to Bmp.Height-1 do
begin
P:=Bmp.ScanLine;
for J:=0 to Bmp.Width-1 do
begin
P[I*3+2]:=R;//R(红)位于最低位
P[I*3+1]:=G;
P[I*3]:=B; //最高位
end;
end;
Canvas.Draw(0,0,Bmp);//显示图片
Bmp.Free;
end;

 
多人接受答案了。
 
后退
顶部