【发布时间】:2013-01-25 20:47:59
【问题描述】:
我需要将 PNG 发送到服务器。一个非常简单的解决方案是创建一个Bitmap 并使用以下代码将其转换为byte[]:
final Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.some_image);
final ByteArrayOutputStream os = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 100, os);
final byte[] data = os.toByteArray();
因为我想节省时间和内存,我想在不需要创建位图的情况下实现这一点。
一个想法是将Drawable 作为File 访问,但我不知道如何获得正确的路径。
有什么想法吗?
【问题讨论】:
-
我在
Resources.openRawResource(R.drawable.*)上做了一些测试,但没有得到稳定的结果。这意味着InputStream的长度与我在文件系统上看到的不匹配。无论如何,这可能会给您提供将Drawable直接读取为InputStream并将其转发给您的OutputStream的方法。