【2019-08-19】C#裁剪切割图片并保存到本地

刚学习C#,萌新追求快速入门,如果注释有不当之处,请指教。

DrawImage有一堆的重载函数,看微软.NET Framework 4.8的文档,心态爆炸。

1、强行理解了一波,代码:

命名空间:

using System.Drawing;

函数中内容:


Bitmap src_jpg = new Bitmap("pikachu.jpg");                      //读入原图,这张原图尺寸为533*300
Rectangle srcRect = new Rectangle(50, 0, 300, 300);              //原图中的要抠出的一小块图,这一小块的左上角的坐标为(50, 0),长为300,高为300
Rectangle destRect = new Rectangle(0, 0, 300, 300);              //新图在画布上的左上角坐标为(0, 0),新图长300,高300
Bitmap new_jpg = new Bitmap(destRect.Width, destRect.Height);    //放置新图的画布,照搬新图的的大小
Graphics g = Graphics.FromImage(new_jpg);                        //g就像一只画笔,准备在new_jpg上作画
g.DrawImage(src_jpg, destRect, srcRect, GraphicsUnit.Pixel);
new_jpg.Save("new_pikachu.jpg");         //保存图片
src_jpg.Dispose();                       //类似于关闭文件流,否则程序不终止,"pikachu.jpg"就处于被占用的状态

效果;
在这里插入图片描述

2、仅改动如下一行,原图要抠的图高300,而我偏要把新图变成高100。
(画布仍然跟随新图的长和高)

Rectangle destRect = new Rectangle(0, 0, 300, 100);           //新图的尺寸为,左上角起始坐标为(0, 0),长为300,但高变成了100

效果:
在这里插入图片描述

3、继续仅改动这一行,新图在画布时的左上角起始点,不是在(0, 0)了,放到(150, 100)。
(画布仍然跟随新图的长和高)

Rectangle destRect = new Rectangle(150, 100, 300, 300);      //新图的左上角起始坐标为(150, 100)

效果:
在这里插入图片描述

4、仅改动下一行,画布的长和高自定义,设置为长400,高400.

Bitmap new_jpg = new Bitmap(400, 400); 
//之前是Bitmap new_jpg = new Bitmap(destRect.Width, destRect.Height); 

效果:
在这里插入图片描述
完结撒花。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值