本文主要是介绍超高兴,呵呵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本以为图像分拆超难,没想到今天一下子就搞定了,高兴,五一不用加班了。今晚大吃一顿,庆祝庆祝,呵呵。
/// <summary>
/// 对给定的image进行图像分拆,截取指定位置的图片
/// </summary>
/// <param name="image">图像对象</param>
/// <param name="x">x坐标</param>
/// <param name="y">y坐标</param>
/// <param name="w">宽度</param>
/// <param name="h">高度</param>
/// <returns>一个图像的内存流</returns>
public static MemoryStream Crop(Image image, int x, int y, int w, int h)
{
//图形对象未实例话
if (null == image) return null;
//x坐标超出范围
if (x < 0 || x > image.Width) return null;
//y坐标超出范围
if (y < 0 || y > image.Height) return null;
//高度和宽带不能为负数
if (w <= 0 || h <= 0) return null;
//截取的图像超出范围
if (image.Width < x + w || image.Height < y + h) return null;
Bitmap bmp = new Bitmap(w, h, System.Drawing.Imaging.PixelFormat.Format24bppRgb); //保存截取的图形
Graphics graphics = Graphics.FromImage(bmp); //从bmp创建图形操作对象
graphics.DrawImage(image, new Rectangle(0, 0, w, h), x, y, w, h, GraphicsUnit.Pixel); //在bmp中画出从image要截取的图像
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
graphics.Dispose();
bmp.Dispose();
return ms;
}
这篇关于超高兴,呵呵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!