C#实现图片切割的方法
程序员文章站
2023-12-06 12:15:10
本文实例讲述了c#实现图片切割的方法。分享给大家供大家参考,具体如下:
图片切割就是把一幅大图片按用户要求切割成多幅小图片。dotnet环境下系统提供了gdi+类库,为图...
本文实例讲述了c#实现图片切割的方法。分享给大家供大家参考,具体如下:
图片切割就是把一幅大图片按用户要求切割成多幅小图片。dotnet环境下系统提供了gdi+类库,为图像操作处理提供了方便的接口。
下面是图像切割小程序:
public class imagemanager { /// <summary> /// 图像切割 /// </summary> /// <param name="url">图像文件名称</param> /// <param name="width">切割后图像宽度</param> /// <param name="height">切割后图像高度</param> /// <param name="savepath">切割后图像文件保存路径</param> /// <param name="fileext">切割后图像文件扩展名</param> public static void cut(string url, int width, int height,string savepath,string fileext,string logofile) { bitmap bitmap = new bitmap(url); decimal maxrow = math.ceiling((decimal)bitmap.height / height); decimal maxcolumn = math.ceiling((decimal)bitmap.width / width); for (decimal i = 0; i < maxrow; i++) { for (decimal j = 0; j < maxcolumn; j++) { string filename = i.tostring() + "," + j.tostring() + "." + fileext; bitmap bmp = new bitmap(width, height); for (int offsetx = 0; offsetx < width; offsetx++) { for (int offsety = 0; offsety < height; offsety++) { if (((j * width + offsetx) < bitmap.width) && ((i * height + offsety) < bitmap.height)) { bmp.setpixel(offsetx, offsety, bitmap.getpixel((int)(j * width + offsetx), (int)(i * height + offsety))); } } } graphics g = graphics.fromimage(bmp); g.drawstring("", new font("黑体", 20), new solidbrush(color.fromargb(70, color.whitesmoke)), 60, height/2);//加水印 imageformat format = imageformat.png; switch (fileext.tolower()) { case "png": format = imageformat.png; break; case "bmp": format = imageformat.bmp; break; case "gif": format = imageformat.gif; break; } bmp.save(savepath+"//" + filename,format); } } } }
程序员只需要调用cut函数就可以应用了。
更多关于c#相关内容感兴趣的读者可查看本站专题:《c#图片操作技巧汇总》、《c#常见控件用法教程》、《winform控件用法总结》、《c#数据结构与算法教程》、《c#面向对象程序设计入门教程》及《c#程序设计之线程使用技巧总结》
希望本文所述对大家c#程序设计有所帮助。