图片压缩 in Android

图片压缩

背景

成像系统两大核心: 镜头+感光元器件

底大一级压死人

image-20210330093604413

小米11发布会上:

image-20210330093733661

img

一般全画幅单反/微单相机,厂家设置的有效像素为2400万像素 cmos面积:864mm2 每平方毫米上2.78个像素

asp-c 有效像素为2400万像素 cmos面积 332.3mm2 每平方毫米上7.23个像素

华为mate40 pro 1/1.28英寸 5000万像素,常用1000w像素 cmos面积192.11mm2 每平方毫米26个/5.2个像素

如果按全画幅单反的解析度,华为mate40 pro 应该配500万像素,而不是5000万.

小米10 pro 1/1.33英寸 (15.28mmx11.46mm) 一亿像素 cmos面积175.09mm2 每平方毫米上57个像素

(1英寸约等于25.4mm)

从数值上看,手机1000w像素拍出来的放到最大,效果应该和asp-c 2400万像素放到最大的效果差不多

but: 细节见功夫

放大到100%, 手机拍照的效果比相机差太多了.不是一个档次

压缩算法/图片格式

gif:动图格式,兼容性好,画面质量较差.

png: 可带透明通道.文件偏大.无损压缩.

jpeg:无与伦比的兼容性,非常不错的压缩比. 有损压缩.

webp: 谷歌主推,没有流行起来

Guetzli: 谷歌出的玩具算法,以更高的压缩比压成jpg格式,但极度耗内存和cpu,基本不具有工业价值.

hevc/heif: h.265对应的图片压缩算法,有版权问题. 腹死胎中,只有苹果玩了几个版本.

avif: h.266对应的图片压缩算法,全开源. 压缩比超高,不惧反复压缩.各巨头火热开发中,很有前景.

质量压缩

bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream);

quality: 取值0-100.

一般来说,手机/相机拍照的质量为96,98.

其实肉眼看,80和100并无明显差别.

用于存硬盘收藏的图片,推荐80-90

用于聊天,晒朋友圈之类的上传,推荐70

用于跑算法模型的上传,具体看算法的要求. 可以使用80-90的webp

image-20210322173812647

0-婺源2

image-20210322174122498

image-20210322174142524

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dnEqLofi-1625658189921)(/Users/hss/Library/Application Support/typora-user-images/image-20210322174334485.png)]

image-20210322174356037

image-20210322174413216

image-20210322174430404

image-20210322174543208

image-20210322181148076

图片的缩与放

向下采样 向上插值

相关算法:

  • 单线性/最近邻: 速度最快,但可能失真,有明显锯齿

  • 双线性

  • 双三次/双立方

  • Lanczos

其中,Android只实现了单线性和双线性.

且直接读流的向下采样时,只支持单线性采样.

缩小: 向下采样:

image-20210322192213318

放大: 向上插值

image-20210322192256909

image-20210322192314640

Android里的单线性/双线性操作:

从流中解码bitmap:

BitmapFactory.Options options = new BitmapFactory.Opt
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值