Android -Compress位图图像数组

时间:2015-02-05 04:17:33

标签: android arrays bitmap

我有Bitmap [] images。但行

images.compress(Bitmap.CompressFormat.PNG, 100, bos);

导致错误

  

无法调用compress(Bitmap.CompressFormat,int,   ByteArrayOutputStream)对数组类型Bitmap []

在我的搜索中,我得到了压缩到一个位图的代码。但没有压缩位图数组。

Bitmap[] images = {BitmapFactory.decodeResource(getResources(),R.drawable.candle1),BitmapFactory.decodeResource(getResources   
(),R.drawable.candl3),BitmapFactory.decodeResource(getResources(),R.drawable.senson),BitmapFactory.decodeResource(getResources(),R.drawable.lawn)}; 
ByteArrayOutputStream bos=new ByteArrayOutputStream();
 //  images.compress(Bitmap.CompressFormat.PNG, 100, bos);
img=bos.toByteArray();

1 个答案:

答案 0 :(得分:1)

您应该在循环中压缩Bitmap数组,如下所示:

byte[][] img = new byte[images.length][];

for (int i = 0; i < images.length; i++) {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    images[i].compress(Bitmap.CompressFormat.PNG, 100, bos);

    // use a 2D array for img if you want to retain the byte arrays for all the bitmaps
    img[i] = bos.toByteArray();
}

我希望这会有所帮助。