如何使用c#从图像中裁剪十字矩形?
我想得到图像的一些特定部分,所以我正在裁剪图像。 但是,当我想得到一个与图像不平行的部分时,我会旋转图像然后裁剪。
我不想旋转图像并裁剪一个平行的矩形。 我想要的是,在不旋转图像的情况下,裁剪出与图像成一定角度的矩形。
有没有办法做到这一点?
我想我不能很好地表达自己。 这就是我想要做的: 示例图片 。
假设红色的东西是一个矩形:)我想从图像中裁剪出那个东西。 裁剪后,它不需要是天使。 所以mj可以躺下来。
此方法应执行您要求的操作。
public static Bitmap CropRotatedRect(Bitmap source, Rectangle rect, float angle, bool HighQuality) { Bitmap result = new Bitmap(rect.Width, rect.Height); using (Graphics g = Graphics.FromImage(result)) { g.InterpolationMode = HighQuality ? InterpolationMode.HighQualityBicubic : InterpolationMode.Default; using (Matrix mat = new Matrix()) { mat.Translate(-rect.Location.X, -rect.Location.Y); mat.RotateAt(angle, rect.Location); g.Transform = mat; g.DrawImage(source, new Point(0, 0)); } } return result; }
用法(使用你的MJ例子):
Bitmap src = new Bitmap("C:\\mjexample.jpg"); Rectangle rect = new Rectangle(272, 5, 100, 350); Bitmap cropped = cropRotatedRect(src, rect, -42.5f, true);
- 如何在generics集合上创建扩展方法
- C#Keys Enumeration Confused:Keys.Alt或Keys.RButton | Keys.ShiftKey | Keys.Alt
- 两个坐标的相对基数方向
- OpenFileDialog / c#在任何文件上都很慢。 更好的解决方
- Azure DocumentDB – HTTP请求中找到的MAC签名与计算的签名不同
- 如何在自定义validation中调用默认的ServerCertificateValidationCallback?
- 货币兑换
- 组合多个表达式以动态创建包含表达式的select表达式作为getter
- 当用户点击webbrowser中的链接时如何拦截