移动端图片上传压缩方案
图片的压缩,姑且认为你这里说的是有损压缩吧。在 Web 端,尤其 mobile web,受制于 API 和库的缺失,以及运算资源的不足,通常你只能用 canvas 来缩减尺寸,然后输出 png/jpg 图片。如果这不满足你的需求,可以弄个 hybrid app ,把压缩图片这部分工作交给 app 去做。“展示策略,如何在任何设备上做到图片展示不变形不失真?”不变形是可以做到的,按照图片的高宽比去展示就可以了。但不失真是没法做到的,每个设备不一样,你要小尺寸图片,那么它在大屏幕高分屏上看,肯定是会需要放大,看着就模糊了。
■网友
图片压缩有两种策略1.分辨率不变,改变图片质量。2.图片画质不变,同比例缩放分辨率。在实践中一般这两种策略是混合使用的。使用策略2来把图片缩小到一个固定分辨率的单位比如500*500。使用策略1来更改图片质量,一般将质量调为原质量的80%,图片不会明显失真。现在手机拍出来的照片一般都在3-10mb。我们来演示一下看看图片能压缩到多小。演示如下:1.选择一张分辨率为3914*3914,大小为4864kb的图片.
2.将参数调整为500*500质量为80
3.开始压缩输出结果
可以看出压缩后图片变为38kb。也没有明显失真。上传一下原图和压缩后的图片。原图
压缩后的
■网友
专注图像压缩算法四年,就自己所知解释如下:目前解决图像压缩的工具很多,有很多open source code可以利用,只是要把应用场景想清楚。1. 要保证怎样的压缩品质,对画面质量有无指标要求(PSNR等);2. 要保证怎样的压缩比,即上传后文件大小固定(比如50K)还是相对压缩比例固定( 比如10倍压缩率)。你问的问题,其实是把这两点混在一起了,简要回答就是:1.压缩的比例和压缩后图片的分辨率(是否和图片dpi有关)?压缩后的图片要在50k左右同时不影响在高分辨率设备上的清晰度。答:压缩比和压缩后图片分辨率无关,分辨率是不会被压缩算法改变的,除非你有特殊要求,和dpi更无关。压缩算法会保证1080x720进,1080x720出。压缩后图片在50k同时不影响清晰度,这个有点难度,因为大尺寸的设备,会把压缩造成的损失暴露比较明显,不过可以用一些图像增强算法弥补。有一点要说明的是,高分辨率显示设备跟图像的分辨率没有必然联系。显示设备分辨率高,图片只会按照自己的分辨率显示。2.展示策略,如何在任何设备上做到图片展示不变形不失真?答:如果不是全屏显示图片,基本没有变形失真的可能。如果你要全屏显示,那就是图像缩放(scaling)算法的事情了,这个和压缩基本没有关系。基本就是这样,如果有兴趣继续探讨,欢迎私信。
■网友
之前用过localResizeIMG,效果不错,可惜不再维护了。
百度的webuploader也挺强的,不过没在实践中用过。
■网友
请求分享一个库!
■网友
我认为题主需要补充的是在哪些设备上如何查看不失真,举个例子,如果是手机端的列表页面,那么图片绝无放大的可能,处理方法也不一样的
■网友
@卜晓明是否列举几个可以直接利用的库给大家?
■网友
推荐阅读
- 盐城■盐城:千余件老物件慰市民“乡愁”
- 西藏首台5G网络车载移动CT仪器投用
- 江苏如皋:冬日龙游湖景如画
- |77岁老人烙画《古韵扬州》铁笔生辉“烙”出“好地方”
- 通城|冷空气来袭,耐寒草花“上岗”扮靓通城
- 辩论赛|唇枪舌战!文明校园辩论赛总决赛举行
- 趣头条|奇瑞瑞虎5x,极具性价比,你喜欢吗
- 东台|东台致力打造串场河生态景观廊道
- 教育|中国移动“和教育”智慧校园研讨会在通召开
- 夕阳红|南通移动:“智慧养老”手机让“夕阳红”不孤单
