图片压缩后,依然很大的解决方案

简介: 图片压缩后,依然很大的解决方案

昨天碰到一个很奇怪的事情,在最近的一个项目有这样的一个需求,把上传的图片进行压缩,避免因图片过大而影响浏览速度。


代码也很简单三两句就可以实现了,但发现压缩后的图片,虽然有变小,但还不是很明显。

代码如下: 

public void CreateThumbnailImage() { Image img = Image.FromFile("e:/1.jpg"); Image.GetThumbnailImageAbort cb = new Image.GetThumbnailImageAbort(CallBack); Image thumbnailImage = img.GetThumbnailImage(120, 120, cb, System.IntPtr.Zero); thumbnailImage.Save("e:/2.jpg"); } public bool CallBack() { return false; }

本来是一张大约800*700的图片(80kb),压缩到120*110左右的图片,大小应该在10kb以内,但我却发现压缩后的图片却有45kb。有个别的图片压缩后反而比原来的更大,而且用网页打开也无法显示。


后来查了一下相关的文档,发现.net在保存图片时,是以png默认的格式来保存,我想问题应该就是出在这了,还是试试吧。  

 

//获得缩略图 public void CreateThumbnailImage() { string imgFile = "e:/1.jpg"; Image img = Image.FromFile(imgFile); Image.GetThumbnailImageAbort cb = new Image.GetThumbnailImageAbort(CallBack); Image thumbnailImage = img.GetThumbnailImage(120, 120, cb, System.IntPtr.Zero); string extendName = imgFile.Substring(imgFile.LastIndexOf(".") + 1); ImageFormat imgFormat = GetImageFormat(extendName); thumbnailImage.Save("e:/2.jpg",imgFormat); } public bool CallBack() { return false; } //获得图片格式 private static ImageFormat GetImageFormat(String extendName) { extendName = extendName.ToLower(); if (extendName == "gif") { return ImageFormat.Gif; } else if (extendName == "jpg" || extendName == "jpeg") { return ImageFormat.Jpeg; } else if (extendName == "bmp") { return ImageFormat.Bmp; } else if (extendName == "wmf") { return ImageFormat.Emf; } else if (extendName == "exif") { return ImageFormat.Exif; } else if (extendName == "icon") { return ImageFormat.Icon; } else if (extendName == "tiff") { return ImageFormat.Tiff; } else { return ImageFormat.Png; } }


还真的是这样,压缩后的图片大小就只有4.6kb。

 

压缩注意事项:

 

1、压缩图片要指定保存的格式,虽然保存后图片名称是对的,但图片还是很大,而且在网页上还无法显示。

 

2、对于图片格式为gif且为透明的图片,如果压缩后要保留透明的,那压缩的格式就要用png的,而且图片的扩展名也为png,若压缩成gif的格式,它无法保留透明的部分。


相关文章
|
7月前
|
前端开发 算法 JavaScript
如何优化前端性能:探索图片压缩与延迟加载技术
本文深入探讨了前端性能优化中的关键问题:图片压缩与延迟加载技术。通过介绍图片压缩的原理和方法,并结合实例说明了如何有效减少图片大小、提升加载速度;同时,详细解析了延迟加载技术的实现原理及其在提高页面加载性能中的作用,为前端开发者提供了实用的优化方案。
|
存储 编解码 Android开发
一款压缩图片又不损画质的黑科技软件!!!
一款压缩图片又不损画质的黑科技软件!!!
|
存储 前端开发 算法
前端性能优化-图片
前端性能优化-图片
266 29
前端性能优化-图片
|
移动开发 前端开发 开发工具
H5图片压缩与上传
H5图片压缩与上传
293 0
H5图片压缩与上传
uniapp之图片压缩
传入图片地址,返回图片base64内容
566 0
|
算法 Android开发
聊聊图片压缩的优化
聊聊图片压缩的优化
266 0
聊聊图片压缩的优化
|
机器学习/深度学习 人工智能 编解码
画质不变,体积却缩减 75%,谷歌这项图片压缩黑科技也是牛了!
去年年中的时候网络上曾流传一个消息称谷歌正在开发一种新技术,利用人工智能技术压塑图片,可以使图片在画质不变的情况下缩减文件体积,半年过去,这种技术已经研发成功。 日前,谷歌推出了一项名为-RASIR 的图像压缩技术,官方介绍表示,其能使图片画质保持不变的情况下将文件体积缩减 75%。
299 0
画质不变,体积却缩减 75%,谷歌这项图片压缩黑科技也是牛了!
|
JavaScript 前端开发
ImagesQuicklyCompress-图片压缩插件
一款针对javascript开发的图片压缩插件
214 0
|
缓存 Dart 前端开发
AliFlutter图片解决方案与优化
Flutter与Native混合开发将是接下来很长时间的主流开发方式。一套稳定、高效、与官方体系无缝融合的外接图片缓存方案是必不可少的。在AliFlutter系列第三场直播中,由阿里巴巴新零售淘系技术部无线开发专家王乾元为大家介绍AliFlutter提供的适合混合应用的外接图片库方案。首先对Flutter官方原生方案进行了分析,并提出了AliFlutter方案的切入点以及具体优化手段。
3225 0
AliFlutter图片解决方案与优化
|
前端开发 HTML5 移动开发
移动端图片上传旋转、压缩的解决方案
在手机上通过网页 input 标签拍照上传图片,有一些手机会出现图片旋转了90度d的问题,包括 iPhone 和个别三星手机。这些手机竖着拍的时候才会出现这种问题,横拍出来的照片就正常显示。
1292 0