【问题标题】:Converting multiple bitmap to byteArray issue将多个位图转换为 byteArray 问题
【发布时间】:2018-01-29 00:46:09
【问题描述】:

我有 5 个图像位图。其中必须转换为 byteArray。但是在使用下面的代码时,它会在一段时间内获得结构。请帮我解决这个问题。

fun bitmapToString(var bitmap:Bitmap):String{
 val byteArrayOutputStream = ByteArrayOutputStream()
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream)
    val byteArray = byteArrayOutputStream.toByteArray()
    return Base64.encodeToString(byteArray, Base64.DEFAULT)
}

在我的课堂上,我使用下面的代码和新线程

Thread(Runnable{
hmImageBase64[0] = CommonUtils.bitmapToString(resized)
 hmImageBase64[1] = CommonUtils.bitmapToString(resized1)
hmImageBase64[2] = CommonUtils.bitmapToString(resized2)
.
.
.
hmImageBase64[6] = CommonUtils.bitmapToString(resized6)

})

如果我做错了什么,请告诉我。提前致谢!!

【问题讨论】:

  • " 下面的代码它会在某个时候获得结构" ??请解释发生了什么。
  • 这里位图转换成base64字符串。对于单个图像转换,大约需要 3-5 秒。因此,对于 6 张图像 UI 的结构相同,直到完全转换。那么如何在后台使用它。

标签: android image-processing bitmap


【解决方案1】:

为此使用 asyntask 不要一次运行所有 hmImageBase64[0],1,2...。创建队列或在执行后。 第一次完成后开始第二次,其他人也一样。

第一:

Thread(Runnable{
 hmImageBase64[0] = CommonUtils.bitmapToString(resized)
})

第二:

Thread(Runnable{ 
 hmImageBase64[1] = CommonUtils.bitmapToString(resized2)
}) 

在第一个完成后调用第二个,然后一个接一个地这样。

【讨论】:

    猜你喜欢
    • 2012-04-28
    • 2017-03-24
    • 2013-04-07
    • 2013-07-20
    • 2010-10-28
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多