手机
当前位置:查字典教程网 >编程开发 >C#教程 >c#图片处理之图片裁剪成不规则图形
c#图片处理之图片裁剪成不规则图形
摘要:为了让大家知道下面内容是否是自己想要的,我先发效果图。好了,那就开始贴代码了以下为一个按钮的事件,为裁剪准备图片、裁剪路径、保存路径复制代码...

为了让大家知道下面内容是否是自己想要的,我先发效果图。

c#图片处理之图片裁剪成不规则图形1

好了,那就开始贴代码了

以下为一个按钮的事件,为裁剪准备图片、裁剪路径、保存路径

复制代码 代码如下:

private void button1_Click(object sender, EventArgs e)

{

GraphicsPath path = new GraphicsPath();

Point[] p = {

new Point(424,244),

new Point(240,440),

new Point(340,552),

new Point(550,526),

new Point(478,366),

new Point(348,660),

new Point(424,244)

};

path.AddLines(p);

OpenFileDialog openFileDialog = new OpenFileDialog();

openFileDialog.Filter = @"Bitmap文件(*.bmp)|*.bmp|Jpeg文件(*.jpg)|*.jpg|所有合适文件(*.bmp,*.jpg)|*.bmp;*.jpg";

openFileDialog.FilterIndex = 3;

openFileDialog.RestoreDirectory = true;

if (DialogResult.OK == openFileDialog.ShowDialog())

{

Bitmap bit = (Bitmap)Bitmap.FromFile(openFileDialog.FileName, false);

Bitmap newBit = null;

BitmapCrop(bit, path, out newBit);

newBit.Save(@"C:UsersPublicPicturesSample Pictures沙漠22.jpg");

}

}

以下为裁剪的关键代码

复制代码 代码如下:

/// <summary>

/// 图片截图

/// </summary>

/// <param name="bitmap">原图</param>

/// <param name="path">裁剪路径</param>

/// <param name="outputBitmap">输出图</param>

/// <returns></returns>

public static Bitmap BitmapCrop(Bitmap bitmap, GraphicsPath path, out Bitmap outputBitmap)

{

RectangleF rect = path.GetBounds();

int left = (int)rect.Left;

int top = (int)rect.Top;

int width = (int)rect.Width;

int height = (int)rect.Height;

Bitmap image = (Bitmap)bitmap.Clone();

outputBitmap = new Bitmap(width, height);

for (int i = left; i < left + width; i++)

{

for (int j = top; j < top + height; j++)

{

//判断坐标是否在路径中

if (path.IsVisible(i, j))

{

//复制原图区域的像素到输出图片

outputBitmap.SetPixel(i - left, j - top, image.GetPixel(i, j));

//设置原图这部分区域为透明

image.SetPixel(i, j, Color.FromArgb(0, image.GetPixel(i, j)));

}

else

{

outputBitmap.SetPixel(i - left, j - top, Color.FromArgb(0, 255, 255, 255));

}

}

}

bitmap.Dispose();

return image;

}

有了这个前台只需要获取用户的鼠标路径传到后台就可以。

【c#图片处理之图片裁剪成不规则图形】相关文章:

C#图片压缩的实现方法

C#实现图片分割方法与代码

桌面浮动窗口(类似恶意广告)的实现详解

c# 方法可变数量的参数

c# winform取消右上角关闭按钮的实现方法

c#图片添加水印的实例代码

sort page 排序和分页的小例子

C#简单快速的json组件fastJSON使用介绍

c#基础学习之封装

判断图片-判断位图是否是黑白图片的方法

精品推荐
分类导航