在android中编写和读取流中的位图

时间:2014-03-11 18:28:01

标签: android bitmap stream

我正试图通过蓝牙在两部Android手机中发送和读取位图,并且我使用了以下代码来实现它。

public void writeBitmap(Bitmap bitmap) throws IOException {
     socketOutputStream.write(BitmapUtils.toByteArray(bitmap));
     socketOutputStream.flush();
}
public Bitmap readBitmap(final int BITMAP_SIZE) throws IOException {
        Bitmap bitmap = BitmapFactory.decodeStream(socketInputStream);
        if (bitmap == null) {
            Log.i("Bitmap", "Error In receiving bitmap");
        }
        else{
            Log.i("BitmapSize","Size: "+bitmap.getByteCount());
        }
        return bitmap;

    }

上面的代码效果很好,但是编写和阅读需要花费很多时间。我知道问题是当我将位图转换为byteArray时,与原始位图大小相比,它占用了令人难以置信的空间。谁能告诉我在套接字上编写和读取位图的正确方法。

提前致谢!

0 个答案:

没有答案