画像のセクションをビットマップC#Winformsにレンダリングする
-
10-07-2019 - |
質問
私は自由な時間にデザインしているXNAゲームのマップエディターに取り組んでいます。マップで使用されるアート作品は単一のテクスチャに保存され、長方形は座標や幅などとともに保存されます。
winformsアプリケーションでは、リストボックスから必要なセグメントを選択することでセグメントを追加できます。リストボックスには、可能なセグメントの配列からデータが入力されます。
問題は、選択したセグメントのプレビューを表示できるようにしたいことです。セグメントは共通のテクスチャに保存されているため、画像を表示するためのピクチャボックスを設定することはできません。
長方形の情報(.x、.y、.width、.height)を使用してピクチャボックス内の画像のセクションのみを表示する、またはセクションをビットマップにブリットして表示する方法はありますか?
多くの感謝
マイケルアレン
解決
おそらくGDIライブラリを調べたいでしょう。 ImageまたはBitmapオブジェクトとGraphics.DrawImage()を一緒に使用すると、探しているものが得られます。
private void DrawImageRectRect(PaintEventArgs e)
{
// Create image.
Image newImage = Image.FromFile("SampImag.jpg");
// Create rectangle for displaying image.
Rectangle destRect = new Rectangle(100, 100, 450, 150);
// Create rectangle for source image.
Rectangle srcRect = new Rectangle(50, 50, 150, 150);
GraphicsUnit units = GraphicsUnit.Pixel;
// Draw image to screen.
e.Graphics.DrawImage(newImage, destRect, srcRect, units);
}
また、PictureBoxとGDIを使用する代わりに、WinForm内でXNAを使用することに興味があるかもしれません。まだ完全にサポートされているわけではありませんが、そのチュートリアルはこちらにあります。
他のヒント
Graphics.DrawImage()を使用すると、Rectangleを使用できます。
所属していません StackOverflow