フォームに描いたグラフィックをビットマップにするには?

解決


bitmap  2002-11-26 01:08:44  No: 2196

フォームにCanvas等で描いたグラフィックをビットマップファイルにしたいです。
    Bitmap := TBitmap.Create;
    Bitmap.Canvas.Rectangle(0,0,100,100);
    Bitmap.SaveToFile('bit.bmp');
    BitMap.free;
感覚的にこうすればよいような気がしているのですが、うまくいきません。ビギナーなのでサンプルコードで示していただければ助かります。お願いします。


にしの  2002-11-26 01:26:07  No: 2197

感覚的にはあってますね、たしかに。
ところで、どのくらいの大きさのビットマップを作りたいんでしょうか。
このままだと、BitmapをCreateしても大きさ(Width, Height)の指定がありませんよね。
上のソースに足りないのは、大きさの指定です。
# エラー処理も必要ですが、なくても画像は作れると思うので今回の説明では省きます

Rectangleで描画する前に、大きさを決めないと、書いたことにはなりません。
Width,Heightの初期値は0です。


にしの  2002-11-26 01:27:43  No: 2198

フォームに書いたものではないですよね?
上のソースだと、
「100x100の大きさの四角が書かれたビットマップをファイルに保存する」
です。
フォームに書かれた物をコピーするには別の方法をとらねばなりません。


bitmap  2002-11-26 01:37:30  No: 2199

とりあえず、たとえば円が描かれたビットマップファイルを作りたいとします。
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;
としてみましても、何も描かれていないビットマップファイルができて、思ったとおりにいきません。ここをクリアすることができれば、望んだとおりのものを作れると思います。どこがだめなんでしょうか?


bitmap  2002-11-26 01:42:22  No: 2200

widthとheightを指定すると、描画することができました!アドバイスありがとうございます。もしかすると、別の問題が生まれるかもしれないので、勝手ですが解決をもう少し先延ばしさせてもらいます。


bitmap  2002-11-26 01:47:46  No: 2201

にしの様、ありがとうございました。無事に解決することができました。ご親切に感謝します。また何かあったときはよろしくお願いします


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加