Imageオブジェクトの画像の一部からPictureBoxに貼り付けるには?

解決


ghth  2005-12-03 06:27:21  No: 59869

Windows XP Pro, Visual C++ .NET 2003, Windows フォーム アプリケーションでやっています。
題名の通りなのですが、
    System::Drawing::Image* img;
    img=System::Drawing::Image::FormFile(S"a.gif");
でImageオブジェクトに画像を取り込み、その一部の長方形を別のPictureBoxに表示させたいのですが、どうすればいいのか分かりません。
どなたか方法を知っていらっしゃる方は、教えてください。


Blue  2005-12-03 09:19:26  No: 59870

PictureBox の Paint イベントに描画処理を書きます。

// 矩形を指定
System::Drawing::RectangleF srcRect = System::Drawing::RectangleF( 20.0f, 20.0f, 70.0f, 70.0f );
// デバイス ピクセルを長さの単位に指定
System::Drawing::GraphicsUnit units = System::Drawing::GraphicsUnit::Pixel;
// 指定した位置にイメージの一部を描画
e->Graphics->DrawImage( img, 0, 0, srcRect, units );

MSDN
public: void DrawImage(Image*, int, int, Rectangle, GraphicsUnit);
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdrawinggraphicsclassdrawimagetopic14.asp


Blue  2005-12-03 09:23:29  No: 59871

> // 矩形を指定
> System::Drawing::RectangleF srcRect = System::Drawing::RectangleF( 20.0f, 20.0f, 70.0f, 70.0f );
ここちがってました。

System::Drawing::Rectangle srcRect = System::Drawing::Rectangle( 20, 20, 70, 70 );

です。
# メソッド多すぎで混乱する罠。


Blue  2005-12-03 09:27:06  No: 59872

というか、
Rectangle は __valueクラスなんで
> System::Drawing::Rectangle srcRect = System::Drawing::Rectangle( 20, 20, 70, 70 );
よりも
System::Drawing::Rectangle srcRect( 20, 20, 70, 70 );
ですね。


ghth  2005-12-05 02:31:28  No: 59873

Blueさんの方法で試してみたら、できました。
ありがとうございます。


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

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






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