gpt4 book ai didi

c# - 如何使用 C# 从图像中裁剪十字矩形?

转载 作者:太空狗 更新时间:2023-10-29 23:10:03 26 4
gpt4 key购买 nike

我想获取图像的某些特定部分,因此我正在裁剪图像。但是,当我想要获得与图像不平行的部分时,我会旋转图像并在之后进行裁剪。

我不想旋转图像并裁剪平行矩形。我想要的是,在不旋转图像的情况下,裁剪一个与图像成一定角度的矩形。

有什么办法吗?

我想我无法很好地表达自己。这就是我想要做的:example picture .

假设红色的东西是一个矩形 :) 我想把那个东西从图像中裁剪掉。裁剪后不需要天使。这样 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);

关于c# - 如何使用 C# 从图像中裁剪十字矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8699103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com