Android 的 Bitmap 转 base64 给到 H5, H5 不能直接渲染这个 Base64 吗?
h5 渲染:data:image/png;base64,base64 编码的 png 图片数据
h5 渲染 base64 编码的图片需要的是不是一定得是文件转出的 Base64 ?
而 Android 中的 Bitmap 中按格式存储的是每一个像素点的 16 进制颜色值,所以这并不是个文件转出来的 base64 也不是浏览器可识别的么
如此理解十分浅薄啊,望双端大佬指教
4 条回复 • 2021-01-26 13:33:34 +08:00
1
oxromantic 72 天前 via iPhone 喂,首先要符合你写的 image/png 格式啊
|
2
kop1989 72 天前 你也说了,html 中 img 标签需要先声明 data 的格式:image/png
然后你给了一个 bitmap 对象的 base64String,这和你声明的格式不符。(确实 bitmap 也不是 img 标签支持的格式) |
3
kop1989 72 天前 所以你需要:
ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); return Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT); btw,手写的,所以不严谨。领会大意即可。 |
4
xhpan10 72 天前 bitmap 没有压缩,不会很大吗,内存不会爆了?
|