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 |