C# 实现不规则图形裁剪(高效)
废话少说,直接上代码
/// <summary>
/// 图片裁剪
/// </summary>
/// <param name="bitmap">原始图片</param>
/// <param name="path">裁剪范围</param>
/// <param name="outputBitmap">裁剪后的图片</param>
public void BitmapCrop(Bitmap bitmap, GraphicsPath path, out Bitmap outputBitmap)
{
RectangleF rect = path.GetBounds();
int width = (int)rect.Width;
int height = (int)rect.Height;
outputBitmap = new Bitmap(width, height);
Graphics g = Graphics.FromImage(outputBitmap);
if (rect.Width > 0 && rect.Height > 0)
{
var gp = new GraphicsPath();
gp.AddPath(path, true);
gp.Transform(new Matrix(1, 0, 0, 1, -rect.Left, -rect.Top));
g.Clip = new Region(gp);
g.DrawImage(bitmap, gp.GetBounds(), rect, GraphicsUnit.Pixel);
gp.Dispose();
g.Dispose();
}
bitmap.Dispose();
}
搞定。。。
博客介绍了用 C# 实现高效不规则图形裁剪,未作过多说明,直接给出代码。

367

被折叠的 条评论
为什么被折叠?



