Csharp/C#教程:C#实现对图片文件的压缩、裁剪操作实例分享

本文实例讲述了C#对图片文件的压缩、裁剪操作方法,在C#项目开发中非常有实用价值。分享给大家供大家参考。具体如下:

一般在做项目时,对图片的处理,以前都采用在上传时,限制其大小的方式,这样带来诸多不便。毕竟网站运维人员不一定会对图片做处理,经常超出大小限制,即使会使用图片处理软件的,也由于个人水平方面原因,处理效果差强人意。

于是采用C#为我们提供的图像编辑功能,实现一站式上传,通过程序生成所需大小、尺寸的目标图片。

具体步骤如下:

先说图片压缩:

第一步:需要读取一个图片文件,读取方法:

//<paramname="ImageFilePathAndName">图片文件的全路径名称</param> publicImageResourceImage=Image.FromFile(ImageFilePathAndName);

说明:

Image类:引用自System.Drawing,为源自Bitmap和Metafile的类提供功能的抽象基类。

主要属性:Size->获取此图像的以像素为单位的宽度和高度。

PhysicalDimension->获取此图像的宽度和高度(如果该图像是位图,以像素为单位返回宽度和高度。如果该图像是图元文件,则以0.01毫米为单位返回宽度和高度。)。

PixelFormat->获取此Image的像素格式。

Height、Width->获取此Image的高度、宽度(以像素为单位)。

主要方法:FromFile(String)->从指定的文件创建Image。

FromStream(Stream)->从指定的数据流创建Image。

Save(StringfileName)->将该Image保存到指定的文件或流。

Save(Stream,ImageFormat)->将此图像以指定的格式保存到指定的流中。

Save(String,ImageFormat)->将此Image以指定格式保存到指定文件。

更多属性和方法说明请点击。

第二步,生成缩略图,并且将原图内容按指定大小绘制到目标图片

///<summary> ///生成缩略图重载方法1,返回缩略图的Image对象 ///</summary> ///<paramname="Width">缩略图的宽度</param> ///<paramname="Height">缩略图的高度</param> ///<returns>缩略图的Image对象</returns> publicImageGetReducedImage(intWidth,intHeight) { try { //用指定的大小和格式初始化Bitmap类的新实例 Bitmapbitmap=newBitmap(Width,Height,PixelFormat.Format32bppArgb); //从指定的Image对象创建新Graphics对象 Graphicsgraphics=Graphics.FromImage(bitmap); //清除整个绘图面并以透明背景色填充 graphics.Clear(Color.Transparent); //在指定位置并且按指定大小绘制原图片对象 graphics.DrawImage(ResourceImage,newRectangle(0,0,Width,Height)); returnbitmap; } catch(Exceptione) { ErrMessage=e.Message; returnnull; } }

说明:

1、Bitmap类

引用自System.Drawing,封装GDI+位图,此位图由图形图像及其特性的像素数据组成。Bitmap是用于处理由像素数据定义的图像的对象。

关于封装图像的对象,详细介绍可参看官方文档:https://msdn.microsoft.com/zh-cn/library/system.drawing.bitmap.aspx。

2、Graphics类

引用自System.Drawing,(处理图像的对象),封装一个GDI+绘图图面。

关于Graphics类可点此查看官方教程:https://msdn.microsoft.com/zh-cn/library/system.drawing.graphics.aspx。

第三步,保存

第二步操作中返回的Image对象,暂时命名为:iImage:

iImage.Save(pathAndName,System.Drawing.Imaging.ImageFormat.Jpeg); 

上述就是C#学习教程:C#实现对图片文件的压缩、裁剪操作实例分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/905783.html

(0)
上一篇 2021年10月23日
下一篇 2021年10月23日

精彩推荐