画像を作成するにはどうすればよいですか?また、16進色のコードを使用してピクセルごとに色を付けるにはどうすればよいですか?
例:100x100ピクセルの画像を作成したいのですが、1x1の領域の色は「$ 002125」、2x2の領域の色は「$ 125487」にしたいと思います。どうすればよいですか?
ご回答ありがとうございます。
簡単なサンプルを作成しました。ScanlineではなくCanvas.Pixelsを使用します。Scanlineの方が高速ですが、最初は問題ないと思います。色はランダムに生成されるため、コードのこの部分を置き換える必要があります。
procedure TForm1.GenerateImageWithRandomColors;
var
Bitmap: TBitmap;
I, J: Integer;
ColorHEX: string;
begin
Bitmap := TBitmap.Create;
Randomize;
try
Bitmap.PixelFormat := pf24bit;
Bitmap.Width := 100;
Bitmap.Height := 100;
for I := 0 to Pred(Bitmap.Width) do
begin
for J := 0 to Pred(Bitmap.Height) do
begin
Bitmap.Canvas.Pixels[I, J] := RGB(Random(256),
Random(256),
Random(256));
// get the HEX value of color and do something with it
ColorHEX := ColorToHex(Bitmap.Canvas.Pixels[I, J]);
end;
end;
Bitmap.SaveToFile('test.bmp');
finally
Bitmap.Free;
end;
end;
function TForm1.ColorToHex(Color : TColor): string;
begin
Result :=
IntToHex(GetRValue(Color), 2) +
IntToHex(GetGValue(Color), 2) +
IntToHex(GetBValue(Color), 2);
end;