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改写如下
var
Bmp:TBitmap;
I,J:Integer;
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;