Image1 Image2 の中身(bmp)を Image3に足したいのですが?

解決


超初心者  2006-06-06 11:19:56  No: 22043

初心者ですいません  イメージコンポーネントですが、
Image1 Image2 の中身picture(bmp)を Image3のpictureの中にに足して入れたいのですが?
横に並べたり  縦に並べて表示したいです。
どうか教えてください。


さどやま  URL  2006-06-07 06:54:37  No: 22044

Image1.Picture.Height >= Image2.Picture.Height だとして、
(そうである必用はないが)

var
  SrcRect, DestRect: TRect;
begin

  // 横につなげる場合
  Image3.Picture.Bitmap.Width := Image1.Picture.Bitmap.Width +
                                 Image2.Picture.Bitmap.Width;
  Image3.Picture.Bitmap.Height := Image1.Picture.Bitmap.Height;

  SrcRect := Rect(0, 0. Image1.Width - 1, Image1.Height - 1);

  DestRect := Rect(0, 0. Image1.Width - 1, Image1.Height - 1);
  Image3.Picture.Bitmap.CopyRect(DestRect,
                                 Image1.Picture.Bitmap.Canvas,
                                 SrcRect);

  DestRect.Left := Image1.Width;
  DestRect.Right := Image3.Width - 1;
  Image3.Picture.Bitmap.CopyRect(DestRect,
                                 Image2.Picture.Bitmap.Canvas,
                                 SrcRect);
end;

場合により StretchDraw()も使用できます。


sadoyama さどやま  URL  2006-06-07 06:59:06  No: 22045

訂正.

Image3.Picture.Bitmap.Canvas.CopyRect(DestRect,
                      ~~~~~~          Image1.Picture.Bitmap.Canvas,
                                      SrcRect);


超初心者  2006-06-07 19:02:55  No: 22046

助かりました。大変ありがとうございます。  
あと  Image3  足した画像を縮小して  BMPファイルに保存したいのですが、簡単いい方法がございましたら教えてください!


えーとね  2006-06-07 19:24:00  No: 22047

画像の縮小は中村氏のShrink 関数が定番です。
CommonフォルダのBitmapUtils.pas にあります。
http://www.asahi-net.or.jp/~HA3T-NKMR/DGS/DownLoad.htm

> BMPファイルに保存
Image.Picture.SaveToFile


超初心者  2006-06-08 12:43:13  No: 22048

ありがとうございました  勉強してみます。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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