gpt4 book ai didi

java - 关于 Bitmap 以不同方式转换为 ByteArray 的困惑

转载 作者:行者123 更新时间:2023-12-02 01:50:39 25 4
gpt4 key购买 nike

我搜索了 3 种将 Bitmap 对象转换为 ByteArray 的方法,但结果返回 3 种大小的 ByteArray。他们之间有什么区别?

我测试的图像来自here尺寸为 300x300。

这是我的测试代码和结果。

val bitmapTarget = Glide
.with(_context)
.asBitmap()
.load("https://www.unitag.io/images/generator/templates/classic.png")
.submit()

val bitmap = bitmapTarget.get()

val byteBuffer = ByteBuffer.allocate(bitmap.byteCount)
bitmap.copyPixelsToBuffer(byteBuffer)
val byteFromBuffer = byteBuffer.array() // 360000 bytes

val byteOutputStream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteOutputStream)
val byteJpeg = byteOutputStream.toByteArray() // 25408 bytes

val byteOutputStream2 = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteOutputStream2)
val bytePng = byteOutputStream2.toByteArray() // 4238 bytes

谢谢大家。

最佳答案

尝试一下

Bitmap bmp = intent.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
bmp.recycle();

关于java - 关于 Bitmap 以不同方式转换为 ByteArray 的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57428862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com