V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rangoBen
V2EX  ›  Android

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

  •  
  •   rangoBen · 2021-01-26 11:49:06 +08:00 · 8503 次点击
    这是一个创建于 1396 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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  
       2021-01-26 13:17:31 +08:00 via iPhone
    喂,首先要符合你写的 image/png 格式啊
    kop1989
        2
    kop1989  
       2021-01-26 13:20:40 +08:00
    你也说了,html 中 img 标签需要先声明 data 的格式:image/png
    然后你给了一个 bitmap 对象的 base64String,这和你声明的格式不符。(确实 bitmap 也不是 img 标签支持的格式)
    kop1989
        3
    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
        4
    xhpan10  
       2021-01-26 13:33:34 +08:00
    bitmap 没有压缩,不会很大吗,内存不会爆了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   981 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:03 · PVG 04:03 · LAX 12:03 · JFK 15:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.