我正在为我在空闲时间设计的 XNA 游戏开发地图编辑器。地图中使用的艺术品存储在单个纹理上,矩形存储有坐标和宽度等。
在 winforms 应用程序中,我可以通过从列表框中选择我想要的段来添加段,该列表框是从可能的段数组中填充的。
问题是我希望能够显示所选片段的预览,并且由于它存储在通用纹理上,因此我不能简单地设置一个图片框来显示图像。
无论如何使用矩形信息(.x,.y,.width,.height)来仅显示图片框中的图像部分,或者将部分位图并显示?
非常感谢
迈克尔·艾伦
我正在为我在空闲时间设计的 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);
}
您也可能对在 WinForm 中使用 XNA 而不是使用 PictureBoxes 和 GDI 感兴趣。它还不是 100% 支持,但可以在此处找到相关教程。
您可以使用 Graphics.DrawImage(),它将接受一个 Rectangle。