图片压缩后,依然很大的解决方案
2010-06-28 21:41
246 查看
昨天碰到一个很奇怪的事情,在最近的一个项目有这样的一个需求,把上传的图片进行压缩,避免因图片过大而影响浏览速度。
代码也很简单三两句就可以实现了,但发现压缩后的图片,虽然有变小,但还不是很明显。
代码如下:
本来是一张大约800*700的图片(80kb),压缩到120*110左右的图片,大小应该在10kb以内,但我却发现压缩后的图片却有45kb。
有个别的图片压缩后反而比原来的更大,而且用网页打开也无法显示。
后来查了一下相关的文档,发现.net在保存图片时,是以png默认的格式来保存,我想问题应该就是出在这了,还是试试吧。
还真的是这样,压缩后的图片大小就只有4.6kb。
压缩注意事项:
1、压缩图片要指定保存的格式,虽然保存后图片名称是对的,但图片还是很大,而且在网页上还无法显示。
2、对于图片格式为gif且为透明的图片,如果压缩后要保留透明的,那压缩的格式就要用png的,而且图片的扩展名也为png,
若压缩成gif的格式,它无法保留透明的部分。
代码也很简单三两句就可以实现了,但发现压缩后的图片,虽然有变小,但还不是很明显。
代码如下:
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的格式,它无法保留透明的部分。
相关文章推荐
- 图片压缩后,依然很大的解决方案
- 图片压缩后,依然很大的解决方案
- 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传
- [Android算法] 【04/28 bug修改】android图片压缩终极解决方案
- 移动端图片上传旋转、压缩的解决方案
- 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传
- 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传
- android图片压缩终极解决方案
- Android平台上图片/视频选择,编辑和压缩的一站式解决方案
- Android图片压缩终极解决方案,是的,终极,终极,终极
- Android 图片压缩、照片选择、裁剪,上传、一整套图片解决方案
- 分享一个上传图片,图片压缩Unsupported Image Type解决方案
- H5 图片压缩上传解决方案
- IOS图片压缩上传服务器终极解决方案
- android图片压缩终极解决方案
- office2010下压缩图片没有效果解决方案
- 分享一个上传图片,图片压缩Unsupported Image Type解决方案
- 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传
- 分享一个上传图片,图片压缩Unsupported Image Type解决方案
- 手机端WAP图片上传解决方案localResizeIMG先压缩后ajax无刷新上传