如果我想在VB.net中裁剪图像,我该怎么做呢?我试图让用户拖出他们想要的框(system.drawing.rectangle),它会自动删除框周围的边缘。
我的第一个问题主要是我无法使system.drawing.rectangle可见。它根本没有显示,我正在以编程方式设置它的位置和高度,但没有任何显示。我知道可能有一些我很遗憾的东西......但我似乎无法找到它。
然而,我的大问题在于裁剪本身。我根本找不到任何作物方法。有一个隐藏的我错过了吗?或者我必须自己编码吗?我该怎么做呢?它应该能够输出到位图图像对象。
感谢您的帮助,我很惊讶以前没有问过这个......
答案 0 :(得分:1)
关于你的第一个问题:一个矩形本身不可见。您必须使用Graphics对象的DrawRectangle(...)方法在画布上绘制它。要绘制选择工具,您需要设置Pen对象的DashCap和DashPattern属性。
要“裁剪”图像,您基本上想要拍摄由较小的矩形描绘的较大图像的部分,并将其转换为新的位图。这可以使用Graphics对象的DrawImage(...)方法的30个重载中的一个来完成。您可以将裁剪部分保持在原始尺寸(导致比原始尺寸更小的位图),也可以将其“炸毁”到原始图像的大小。如果你采用后一种方法,通常最好将你的Graphics对象的InterpolationMode属性设置为HighQualityBicubic(我认为这是唯一的),因为默认的InterpolationMode非常糟糕。
在.Net中有许多不同的呈现图像的方法 - 如果您发布了一些代码,可能会有所帮助,并且会解释您遇到的确切问题。
Here is another answer,其中包含指向示例应用的链接(以及C#中的源代码,对不起),可能有助于您入门。
答案 1 :(得分:0)
CodeProject上有很多关于这些主题的文章:
选择你最喜欢的味道(虽然我鼓励你查看C#项目 - 它不应该太难转换)。
<强> VB 强>
Image Cropping with Image Resizing Using vb.net
<强> C#强>
Cropping Images
An Easy to Use Image Resizing and Cropping Control
Image Processing using C#(参见剪裁部分 - 我能够在我的一个项目中使用此代码)
<强> WPF / C#强>
WPF Interactive Image Cropping Control
A Photoshop-like Cropping Adorner for WPF