Android 的 Bitmap 转 base64 给到 H5, H5 不能直接渲染这个 Base64 吗?

2021-01-26 11:49:06 +08:00
 rangoBen
h5 渲染:data:image/png;base64,base64 编码的 png 图片数据

h5 渲染 base64 编码的图片需要的是不是一定得是文件转出的 Base64 ?
而 Android 中的 Bitmap 中按格式存储的是每一个像素点的 16 进制颜色值,所以这并不是个文件转出来的 base64 也不是浏览器可识别的么
如此理解十分浅薄啊,望双端大佬指教
4416 次点击
所在节点    Android
4 条回复
oxromantic
2021-01-26 13:17:31 +08:00
喂,首先要符合你写的 image/png 格式啊
kop1989
2021-01-26 13:20:40 +08:00
你也说了,html 中 img 标签需要先声明 data 的格式:image/png
然后你给了一个 bitmap 对象的 base64String,这和你声明的格式不符。(确实 bitmap 也不是 img 标签支持的格式)
kop1989
2021-01-26 13:26:37 +08:00
所以你需要:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
return Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT);

btw,手写的,所以不严谨。领会大意即可。
xhpan10
2021-01-26 13:33:34 +08:00
bitmap 没有压缩,不会很大吗,内存不会爆了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/748449

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX