使用Picasso加载字节数组

7

我需要将文件系统中的位图加载到字节数组中进行上传,但需要满足以下要求:

  • 调整大小为500x500且以字节数组形式呈现。
  • 异步执行。

我可以使用Glide实现这个功能。

Glide.with(context)
    .load(“/user/profile/photo/path”)
    .asBitmap()
    .toBytes()
    .centerCrop()
    .into(new SimpleTarget<byte[]>(250, 250) {
        @Override
        public void onResourceReady(byte[] data, GlideAnimation anim) {
            // Post your bytes to a background thread and upload them here.
        }
    });

但我不想仅仅为了这个目的而包含它。 有没有使用Picasso的方法来实现呢?


一个位图,它在文件系统中。这怎么可能?请举个例子。 - greenapps
@ greenapps 我和你的情况一样。在我的情况下,我得到一个图像字符串(base64编码),我想用一个库来显示它(以获得性能优化)。 - corlaez
1个回答

1
尝试这个解决方案。
Bitmap bmp = intent.getExtras().get("data"); 
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); 
byte[] byteArray = stream.toByteArray();

但我需要它异步执行,所以Glide有一种简单的方法来实现它,我想知道是否有类似Picasso的方法。 - Daniel Gomez Rico
先调整位图大小 "Bitmap b = BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length) b = Bitmap.createScaledBitmap(b, 120, 120, false));",然后将其转换为字节。 - Muthukrishnan Suresh
将这段代码放在一个异步任务中。你可以在这里找到很好的教程。http://programmerguru.com/android-tutorial/android-asynctask-example/ - Muthukrishnan Suresh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接