本文实例讲述了c#实现缩放和剪裁图片的方法。分享给大家供大家参考,具体如下:
使用系统; 使用System.Collections.Generic; 使用text; 使用System.Drawing; 使用System.Drawing.Drawing2D; 使用System.Drawing.Imaging; 名称空间项目 { 类ImageOperation {///& lt; summary>///调整图片///& lt;/summary>///& lt;参数name=" bmp在原始位图& lt;/param>///& lt;参数name=" newW祝辞新的宽度& lt;/param>///& lt;参数name=" newH祝辞新的高度& lt;/param>///& lt;参数name=澳J健钡脑诒A糇?暂时未用& lt;/param>///& lt; returns>处理以后的图片& lt;/returns> 公共静态位图ResizeImage(位图bmp、int newW int newH, int模式) { 试一试 { 位图b=新的位图(newW newH); 图g=Graphics.FromImage (b);//插值算法的质量 g。InterpolationMode=InterpolationMode.HighQualityBicubic; g。DrawImage (bmp、新矩形(0,0,newW newH),新的矩形(0,0,bmp。宽度,bmp.Height), GraphicsUnit.Pixel); g.Dispose (); 返回b; } 抓 { 返回null; } }///& lt; summary>///剪裁——用GDI +///& lt;/summary>///& lt;参数name=" b "在原始Bitmap///& lt;参数name=" StartX祝辞开始坐标X///& lt;参数name=" StartY祝辞开始坐标Y///& lt;参数name=" iWidth祝辞宽度& lt;/param>///& lt;参数name=" iHeight祝辞高度& lt;/param>///& lt; returns>剪裁后的Bitmap 公共静态位图切(位图b, int StartX, int StartY, int iWidth, int iHeight) { if (b==null) { 返回null; } int w=b.Width; int h=b.Height; 如果(StartX祝辞=w | | StartY祝辞=h) { 返回null; } 如果(StartX + iWidth祝辞w) { iWidth=w - StartX; } 如果(StartY + iHeight祝辞h) { iHeight=h - StartY; } 试一试 { 位图bmpOut=新的位图(iWidth、iHeight PixelFormat.Format24bppRgb); 图g=Graphics.FromImage (bmpOut); g。DrawImage (b,新的矩形(0,0,iWidth iHeight),新矩形(StartX、StartY iWidth, iHeight), GraphicsUnit.Pixel); g.Dispose (); 返回bmpOut; } 抓 { 返回null; } } } } >之前目标其实都是<代码>新矩形(0,0,iWidth iHeight)> 代码,缩放算法把整个原始图都往目标区域里塞<代码>新矩形(0,0,bmp。宽度,bmp.Height)> 代码,而剪裁只是把原始区域上等宽等高的那个区域新矩形(StartX、StartY iWidth, iHeight) 1:1的塞到目标区域里。
更多关于c#相关内容感兴趣的读者可查看本站专题:《c#图片操作技巧汇总》、《c#常见控件用法教程》、《WinForm控件用法总结》,《c#数据结构与算法教程》、《c#面向对象程序设计入门教程》及《c#程序设计之线程使用技巧总结》
希望本文所述对大家c#程序设计有所帮助。
c#实现缩放和剪裁图片的方法示例