1

如果我想在 VB.net 中裁剪图像,我该怎么做呢?我试图让用户拖出他们想要的框(system.drawing.rectangle),它会自动删除框周围的边缘。

我的第一个问题主要是我无法使 system.drawing.rectangle 可见。它根本没有显示,我正在以编程方式设置它的位置和高度,但没有显示任何内容。我知道我可能缺少一些相当明显的东西......但我似乎找不到它。

然而,我更大的问题在于种植本身。我根本找不到任何裁剪方法。有没有我想念的隐藏的?还是我必须自己编码?我该怎么做呢?它应该能够输出到位图图像对象。

感谢您的帮助,我很惊讶以前没有在这里问过这个问题......

4

2 回答 2

1

关于您的第一个问题: Rectangle 本身不可见。您必须使用 Graphics 对象的 DrawRectangle(...) 方法在画布上绘制它。要绘制选择工具,您需要设置 Pen 对象的 DashCap 和 DashPattern 属性。

要“裁剪”图像,您基本上想要获取由较小矩形描绘的较大图像的部分,并将其转换为新的位图。这可以使用 Graphics 对象的 DrawImage(...) 方法的 30 个重载之一来完成。您可以将裁剪部分保持在其原始尺寸(导致比原始尺寸更小的位图),或者您可以将其“放大”到类似于原始图像的大小。如果您采用后一种方法,通常最好将 Graphics 对象的 InterpolationMode 属性设置为 HighQualityBicubic(无论如何我认为就是这样),因为默认的 InterpolationMode 非常糟糕。

在 .Net 中有许多不同的渲染图像的方法——如果您发布一些代码以及对您遇到的确切问题的解释,这可能会有所帮助。

这是另一个答案,其中包含指向示例应用程序(以及 C# 中的源代码,抱歉)的链接,可以帮助您入门。

于 2009-09-04T21:46:18.670 回答
0

CodeProject 上有很多关于这些主题的文章:

选择你最喜欢的风格(尽管我鼓励你查看 C# 项目——转换应该不会太难)。

使用 vb.net 调整图像大小的VB图像裁剪

C#
裁剪图像 一个易于使用的图像大小调整和裁剪控制
使用 C# 进行图像处理 (请参阅裁剪部分 - 我能够在我的一个项目中使用此代码)

WPF/C#
WPF 交互式图像裁剪控件
一个类似 Photoshop 的 WPF 裁剪装饰器

于 2009-09-04T21:25:27.963 回答