C#图片裁切,生成新图片
程序员文章站
2022-04-15 11:10:49
/// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png 新图1_new.png /// /// 要修改图片完整路径 /// 修改起点x坐标 /// 修改起点y坐标 /// 新图宽度 /// 新图高度 public static void cai... ......
/// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png 新图1_new.png /// </summary> /// <param name="picpath">要修改图片完整路径</param> /// <param name="x">修改起点x坐标</param> /// <param name="y">修改起点y坐标</param> /// <param name="width">新图宽度</param> /// <param name="height">新图高度</param> public static void caijianpic(string picpath, int x, int y, int width, int height) { //图片路径 string oldpath = picpath; //新图片路径 string newpath = system.io.path.getextension(oldpath); //计算新的文件名,在旧文件名后加_new newpath = oldpath.substring(0, oldpath.length - newpath.length) + "_new" + newpath; //定义截取矩形 system.drawing.rectangle croparea = new system.drawing.rectangle(x, y, width, height); //要截取的区域大小 //加载图片 system.drawing.image img = system.drawing.image.fromstream(new system.io.memorystream(system.io.file.readallbytes(oldpath))); //判断超出的位置否 if ((img.width < x + width) || img.height < y + height) { messagebox.show("裁剪尺寸超出原有尺寸!"); img.dispose(); return; } //定义bitmap对象 system.drawing.bitmap bmpimage = new system.drawing.bitmap(img); //进行裁剪 system.drawing.bitmap bmpcrop = bmpimage.clone(croparea, bmpimage.pixelformat); //保存成新文件 bmpcrop.save(newpath); //释放对象 img.dispose(); bmpcrop.dispose(); }