如何使用delphi创建单一颜色的bmp文件(位图)

如何使用delphi创建单一颜色的bmp文件(位图),delphi,bmp,Delphi,Bmp,我需要一种在运行时快速创建24位位图(并保存到文件)的方法,指定宽度、高度和颜色 差不多 procedure CreateBMP(Width,Height:Word;Color:TColor;AFile: string); 像这样打电话 CreateBMP(100,100,ClRed,'Red.bmp'); 可以使用的Canvas属性,将笔刷设置为要使用的颜色,然后调用函数填充位图 试着这样做: procedure CreateBitmapSolidColor(Width,Height:Wo

我需要一种在运行时快速创建24位位图(并保存到文件)的方法,指定宽度、高度和颜色

差不多

procedure CreateBMP(Width,Height:Word;Color:TColor;AFile: string);
像这样打电话

CreateBMP(100,100,ClRed,'Red.bmp');

可以使用的
Canvas
属性,将
笔刷设置为要使用的颜色,然后调用函数填充位图

试着这样做:

procedure CreateBitmapSolidColor(Width,Height:Word;Color:TColor;const FileName : TFileName);
var
 bmp : TBitmap;
begin
 bmp := TBitmap.Create;
 try
   bmp.PixelFormat := pf24bit;
   bmp.Width := Width;
   bmp.Height := Height;
   bmp.Canvas.Brush.Color := Color;
   bmp.Canvas.FillRect(Rect(0, 0, Width, Height));
   bmp.SaveToFile(FileName);
 finally
   bmp.Free;
 end;
end;

实际上,您不需要调用FillRect。如果在设置宽度和高度之前设置Brush.Color,位图将对所有像素使用此颜色。我从未见过这种行为被记录在案,因此它可能会在未来的版本中发生变化。

这正是我要建议的。我用这种技术制作了一个带有颜色名称和小图像的所有者绘制组合框。
bmp.Canvas.FillRect(Rect(0,0,Height,Width))
应该是
bmp.Canvas.FillRect(Rect(0,0,宽度,高度))