V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
rangoBen
V2EX  ›  Android

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

  •  
  •   rangoBen · Jan 26, 2021 · 12973 views
    This topic created in 1931 days ago, the information mentioned may be changed or developed.
    h5 渲染:data:image/png;base64,base64 编码的 png 图片数据

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

    btw,手写的,所以不严谨。领会大意即可。
    xhpan10
        4
    xhpan10  
       Jan 26, 2021
    bitmap 没有压缩,不会很大吗,内存不会爆了?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3738 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 10:39 · PVG 18:39 · LAX 03:39 · JFK 06:39
    ♥ Do have faith in what you're doing.