我正试图通过蓝牙在两部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时,与原始位图大小相比,它占用了令人难以置信的空间。谁能告诉我在套接字上编写和读取位图的正确方法。
提前致谢!