1. Android分享小程序到Android没问题,但是iPhone和iPad不显示小程序的封面图片,只有一个问号。
结果:确保不出错,这个图片格式只能为jpg。
UI什么切图都给的PNG,为了节约包大小,使用Android Studio 转成webp,但是微信客户端在iOS端可能不支持这个所以显示不出来。
尝试1:用png,但是PNG是无损压缩,compress方法不能压缩它的大小,图片有500k,微信限制128k,怎么都不行。
尝试2:转jpg,还好图片不需要透明背景,先png转jpg,再用tinypng压缩jpg,成功将500k压缩到50k。
val stream = ByteArrayOutputStream()
BitmapFactory.decodeResource(resources,R.drawable.slice_share_we_chat_app,BitmapFactory.Options().apply {
inPreferredConfig = Bitmap.Config.RGB_565
inSampleSize = 2
}).compress(Bitmap.CompressFormat.JPEG, 10, stream)
msg.thumbData = stream.toByteArray() // 小程序消息封面图片,小于128k<==> 128*1024 Bytes ~ 128,000 Bytes
stream.flush()
stream.close()
以下为华为平板M6测试结果:
结果直接是thumbData的size()
不知道为啥这里设置RGB565反而比8888要大,记得Glide里面也说过,貌似与Android版本有关。
inPreferredConfig | inSampleSize | quality | 结果(Bytes) |
---|---|---|---|
RGB_565 | 1 | 10 | 71571 |
RGB_565 | 1 | 100 | 1079636 |
RGB_565 | 2 | 10 | 24708 |
RGB_565 | 2 | 100 | 397528 |
ARGB_8888 | 1 | 10 | 71330 |
ARGB_8888 | 1 | 100 | 933535 |
ARGB_8888 | 2 | 10 | 24645 |
ARGB_8888 | 2 | 100 | 355268 |
网友评论