图像2

处理图像:

对位图进行操作:裁剪、变形、翻转和拷贝等。

裁剪图像:

 Graphics g = e.Graphics;
            Bitmap bmp = new Bitmap("C:\\Users\\ZQNB\\Desktop\\dog.png");
            Rectangle sr = new Rectangle(10, 10, 100, 100);      //图像中要绘制的部分
            Rectangle dr = new Rectangle(0, 0, 100, 100);        //绘制的位置,以控制缩放
            g.DrawImage(bmp, dr, sr, GraphicsUnit.Pixel);

如图:

绘制原图左上角的部分。

变形、旋转和翻转图像:

DrawImage提供了一个重载方法,通过一个三点数组来对图像进行缩放、变形、水平或垂直的翻转以及旋转,实际上可以通过三个点处理很多变换的组合。

这三个点:第一个点指定源位图左上角点的目标位置, 第二个点指定源位图右上角点的目标位置,第三个点指定源位图左下角的目标位置。

关键代码:

Point[] destinationPoints = {
                                            new Point(0,0),
                                            new Point(100,0),
                                            new Point(50,100)
                                        };
            g.DrawImage(bmp, destinationPoints);

变形:

翻转代码:

Point[] destinationPoints = {
                                            new Point(0,100),
                                            new Point(100,100),
                                            new Point(0,0)
                                        };
            g.DrawImage(bmp, destinationPoints);

图:

旋转:

三个点分别为(200,0),(200,200),(0,0);结果类似于Bitmap.RotateFlip方法得到的效果,但使用该方法是处理在内存中的图像,而DrawImage只是在绘图表面的改变。

复制图像:

Rectangle r = new Rectangle(20, 20, 100, 100);
            Bitmap bmp2 = bmp.Clone(r, System.Drawing.Imaging.PixelFormat.DontCare);
            g.DrawImage(bmp, new Rectangle(0, 0, 100, 100));
            g.DrawImage(bmp2,new Rectangle(110,0,100,100));
            bmp2.Dispose();

复制的是源图像的一部分


保存图片:

把BMP转换为JPEG

每种图片有个字的优点,有时候需转换以更适用与某些用途。如JPEG格式更适用于压缩照片,Gif适用于计算机生成的图像,BMP是旧格式,更兼容。但是BMP格式图像占用空间大,下面把BMP转换为JPEG格式。

Graphics g = e.Graphics;
            Bitmap bmp = new Bitmap("C:\\Users\\ZQNB\\Desktop\\dog.png");

            bmp.Save("C:\\Users\\ZQNB\\Desktop\\dog.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

自己试试效果,本人试过确实在桌面上生成了dog.jpg图片。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值