h5 渲染:data:image/png;base64,base64 编码的 png 图片数据

h5 渲染 base64 编码的图片需要的是不是一定得是文件转出的 Base64 ?
而 Android 中的 Bitmap 中按格式存储的是每一个像素点的 16 进制颜色值,所以这并不是个文件转出来的 base64 也不是浏览器可识别的么
如此理解十分浅薄啊,望双端大佬指教

4 条回复    2021-01-26 13:33:34 +08:00
oxromantic
    1

oxromantic   72 天前 via iPhone

喂,首先要符合你写的 image/png 格式啊
kop1989
    2

kop1989   72 天前

你也说了,html 中 img 标签需要先声明 data 的格式:image/png
然后你给了一个 bitmap 对象的 base64String,这和你声明的格式不符。(确实 bitmap 也不是 img 标签支持的格式)
kop1989
    3

kop1989   72 天前

所以你需要:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
return Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT);

btw,手写的,所以不严谨。领会大意即可。

xhpan10
    4

xhpan10   72 天前

bitmap 没有压缩,不会很大吗,内存不会爆了?