手机
当前位置:查字典教程网 >编程开发 >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#图片处理之图片裁剪成不规则图形】相关文章:

sort page 排序和分页的小例子

C#保存图片到数据库并读取显示图片的方法

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

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

c# 方法可变数量的参数

c#给图片添加文字的代码小结

c#初学简单程序实例代码介绍

c# 文件(夹)创建与删除

c# 空合并运算符“??”的使用详解

C#操作数据库总结(vs2005+sql2005)

精品推荐
分类导航