怎么保存BMP(30分)

  • 主题发起人 mylovegirl
  • 开始时间
M

mylovegirl

Unregistered / Unconfirmed
GUEST, unregistred user!
保存BMP却得到一片黑
procedure TMainFrm.ToolButton9Click(Sender: TObject);
var
X,Y:integer;
begin
Bmp:=TBitmap.Create;
Bmp.Width:=Wth;
Bmp.Height:=Hgh;
Bmp.PixelFormat:=pf1bit;
for Y:=0 to Hgh-1 do
for X:=0 to Wth-1 do
begin
if S[Y,X]=1 then
Bmp.Canvas.Pixels[X,Y]:=1
else
Bmp.Canvas.Pixels[X,Y]:=0;
end;
if SavePictureDialog1.Execute then
Bmp.SaveToFile(SavePictureDialog1.filename);
 
RGB颜色为1,或者0,不是黑还是什么呢,嗯?
 
改成这样试试

procedure TMainFrm.ToolButton9Click(Sender: TObject);
var
X,Y:integer;
begin
Bmp:=TBitmap.Create;
Bmp.Width:=Wth;
Bmp.Height:=Hgh;
Bmp.PixelFormat:=pf1bit;
for Y:=0 to Hgh-1 do
for X:=0 to Wth-1 do
begin
if S[Y,X]=1 then
Bmp.Canvas.Pixels[X,Y]:=rgb(255,0,0)
else
Bmp.Canvas.Pixels[X,Y]:=rgb(0.255.0)
end;
if SavePictureDialog1.Execute then
Bmp.SaveToFile(SavePictureDialog1.filename);
 
to chshanghai:
我试了试,还是一样啊
 
试试这段代码,已经运行通过!
var
X, Y : integer;
s : array[0..99, 0..99] of Integer;
begin
Bmp := TBitmap.Create;
Bmp.Width := 100;
Bmp.Height := 100;
Bmp.PixelFormat := pf1bit;
for Y := 0 to 100 - 1 do
for X := 0 to 100 - 1 do
begin
if S[Y, X] = 0 then
Bmp.Canvas.Pixels[X, Y] := rgb(255, 255, 255)
else
Bmp.Canvas.Pixels[X, Y] := rgb(0, 0, 0);
end;
Bmp.SaveToFile('1.bmp');
end;
 
多人接受答案了。
 
顶部