フォームにCanvas等で描いたグラフィックをビットマップファイルにしたいです。
Bitmap := TBitmap.Create;
Bitmap.Canvas.Rectangle(0,0,100,100);
Bitmap.SaveToFile('bit.bmp');
BitMap.free;
感覚的にこうすればよいような気がしているのですが、うまくいきません。ビギナーなのでサンプルコードで示していただければ助かります。お願いします。
感覚的にはあってますね、たしかに。
ところで、どのくらいの大きさのビットマップを作りたいんでしょうか。
このままだと、BitmapをCreateしても大きさ(Width, Height)の指定がありませんよね。
上のソースに足りないのは、大きさの指定です。
# エラー処理も必要ですが、なくても画像は作れると思うので今回の説明では省きます
Rectangleで描画する前に、大きさを決めないと、書いたことにはなりません。
Width,Heightの初期値は0です。
フォームに書いたものではないですよね?
上のソースだと、
「100x100の大きさの四角が書かれたビットマップをファイルに保存する」
です。
フォームに書かれた物をコピーするには別の方法をとらねばなりません。
とりあえず、たとえば円が描かれたビットマップファイルを作りたいとします。
Bitmap := TBitmap.Create;
with Bitmap.Canvas do
begin
Pen.Style := psSolid;
Pen.Color := clAqua;
Ellipse(10,10,100,100);
Draw(0,0,Bitmap);
end;
Bitmap.SaveToFile('bitmap.bmp');
BitMap.free;
としてみましても、何も描かれていないビットマップファイルができて、思ったとおりにいきません。ここをクリアすることができれば、望んだとおりのものを作れると思います。どこがだめなんでしょうか?
widthとheightを指定すると、描画することができました!アドバイスありがとうございます。もしかすると、別の問題が生まれるかもしれないので、勝手ですが解決をもう少し先延ばしさせてもらいます。
にしの様、ありがとうございました。無事に解決することができました。ご親切に感謝します。また何かあったときはよろしくお願いします
ツイート | ![]() |