知识大全 C#实现图片压缩方法

Posted

篇首语:知识投资收益最大。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#实现图片压缩方法相关的知识,希望对你有一定的参考价值。

C#实现图片压缩方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  这个是未经优化的简单实现

  public static System Drawing Image GetImageThumb(System Drawing Image sourceImg int width int height) System Drawing Image targetImg = new System Drawing Bitmap(width height); using (System Drawing Graphics g = System Drawing Graphics FromImage(targetImg)) g InterpolationMode = System Drawing Drawing D InterpolationMode High; g SmoothingMode = System Drawing Drawing D SmoothingMode HighQuality; g InterpolationMode = System Drawing Drawing D InterpolationMode HighQualityBicubic; g CompositingQuality = System Drawing Drawing D CompositingQuality HighQuality; g PixelOffsetMode = System Drawing Drawing D PixelOffsetMode HighQuality; g DrawImage(sourceImg new System Drawing Rectangle( width height) new System Drawing Rectangle( sourceImg Width sourceImg Height) System Drawing GraphicsUnit Pixel); g Dispose(); return targetImg;

  这个方法比较简单 用到的是高质量压缩 经过这个方法压缩后 K的图片只能压缩到 k左右

  经过改写代码实现了如下的方法

  public Bitmap GetImageThumb(Bitmap mg Size newSize) double ratio = d; double myThumbWidth = d; double myThumbHeight = d; int x = ; int y = ; Bitmap bp; if ((mg Width / Convert ToDouble(newSize Width)) > (mg Height / Convert ToDouble(newSize Height))) ratio = Convert ToDouble(mg Width) / Convert ToDouble(newSize Width); else ratio = Convert ToDouble(mg Height) / Convert ToDouble(newSize Height); myThumbHeight = Math Ceiling(mg Height / ratio); myThumbWidth = Math Ceiling(mg Width / ratio); Size thumbSize = new Size((int)newSize Width (int)newSize Height); bp = new Bitmap(newSize Width newSize Height); x = (newSize Width thumbSize Width) / ; y = (newSize Height thumbSize Height); System Drawing Graphics g = Graphics FromImage(bp); g SmoothingMode = SmoothingMode HighQuality; g InterpolationMode = InterpolationMode HighQualityBicubic; g PixelOffsetMode = PixelOffsetMode HighQuality; Rectangle rect = new Rectangle(x y thumbSize Width thumbSize Height); g DrawImage(mg rect mg Width mg Height GraphicsUnit Pixel); return bp;

  这样实现的压缩使压缩率大幅度上升 其实代码并没有变多少 最主要的是在保存的时候要是用jpg格式

  如果不指定格式 默认使用的是png格式

  下面这个是园友写的根据设置图片质量数值来压缩图片的方法

cha138/Article/program/net/201311/14025

相关参考

知识大全 C#转换图片文件格式

C#转换图片文件格式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  将图片转换为另一种格式的图像

知识大全 C#图片处理的3种高级实用方法

C#图片处理的3种高级实用方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文介绍C#图片处

知识大全 上传图片并修改其大小(C#)的方法

上传图片并修改其大小(C#)的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  上传图片并修改

知识大全 简单的图片飘C#(Winform)

简单的图片飘C#(Winform)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //个Pict

知识大全 ASP.net(C#)批量上传图片

ASP.net(C#)批量上传图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  因本网站上传图

知识大全 利用C#转换图片格式,还可转换为ico

利用C#转换图片格式,还可转换为ico  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  注意:转换

知识大全 新加了一个QQ,接受了对方的一个压缩包,解压是图片,却删不掉,重启电脑可以删,对方也消失了,是不是病

新加了一个QQ,接受了对方的一个压缩包,解压是图片,却删不掉,重启电脑可以删,对方也消失了,是不是病  以下文字资料是由(全榜网网www.cha138.com)小编为大家

知识大全 微信朋友圈里别人发的文章能删除吗

微信朋友圈里别人发的文章能删除吗?占不占手机空间啊?对的,其实不知是朋友圈的内容,一般聊天室发图片一旦下载下来就会储存到你的手机,不过微信的图片都是有经过压缩,所占用空间不是什么问题,如果要清理的话,

知识大全 三种php删除文件代码

下面我收藏了三php删除文件哦他可以利用unlink删除任何可删除的文件本程序要删除文件图片压缩文件等我们利用了几种方法来实例下面我收藏了三php教程删除文件哦他可以利用unlink删除任何可删除的文

知识大全 怎么建立压缩包

怎么建立压缩包你需要一个压缩软件:【好压】【360压缩】【快压】【Winrar】等然后就可以打包了。如何建立压缩包使用压缩软件即可建立压缩包。推荐使用国产的好压压缩软件~推荐你使用好压压缩软件你可以去