6

Width 、 Height 、および color を指定して、実行時に 24 ビットのビットマップを作成 (およびファイルに保存) する高速な方法が必要です

何かのようなもの

procedure CreateBMP(Width,Height:Word;Color:TColor;AFile: string);

そして、このように呼び出します

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

2 に答える 2

16

Canvasのプロパティを使用して、使用したい色TBitmapに設定し、関数を呼び出してビットマップを塗りつぶすことができます。BrushFillRect

このようなことを試してください:

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;
于 2011-03-24T04:58:15.267 に答える
3

実際に FillRect を呼び出す必要はありません。幅と高さを設定する前に Brush.Color を設定すると、ビットマップはすべてのピクセルにこの色を使用します。この動作が文書化されているのを実際に見たことがないため、将来のバージョンで変更される可能性があります。

于 2011-03-24T17:36:00.657 に答える