在大小溢出时自动添加透明



所以我有这个代码来裁剪图像

private static Image Crop(Image img, Rectangle cropArea)
{
Bitmap bmpImage = (Bitmap)img.Clone();
var part = bmpImage.Clone(cropArea, bmpImage.PixelFormat);
return part;
}

然而,cropArea在图像中偶尔会越界,有时裁剪会延伸到图像之外,我想用透明的颜色填充这些,我该如何实现这一点?

对目标图像使用Graphics对象,并在转换点绘制原始图像。

private static Image Crop(Image img, Rectangle cropArea)
{
//Bitmap bmpImage = (Bitmap)img.Clone();
//var part = bmpImage.Clone(cropArea, bmpImage.PixelFormat);
//return part;
Bitmap part = new Bitmap(cropArea.Width, cropArea.Height, img.PixelFormat);
using (var graphics = Graphics.FromImage(part))
{
graphics.DrawImage(img, -cropArea.X, -cropArea.Y);
}
return part;
}

相关内容

  • 没有找到相关文章

最新更新