当我使用camera2 api捕获时,会生成图像并将图像传输到位图旁边的字节。我的目的是在捕获后选择是否保存。 因此,在按下保存btn之前,它不会在文件中生成。
下面是<发送方 Bitmap bitmap = textureView.getBitmap();
ByteArrayOutputStream bs = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG,100,bs);
byte[] byteArray = bs.toByteArray();
下面是:接受方
byte[] byteArray = getIntent().getByteArrayExtra("byteArray");
bitmap = BitmapFactory.decodeByteArray(byteArray,0,byteArray.length);
resultView.setImageBitmap(bitmap);
我收到了如下错误
android.os.TransactionTooLargeException
我理解错误的原因但我想将图像转移到另一个活动 有人帮忙吗?
答案 0 :(得分:2)
将您的位图对象放在Intent.putExtra("key", object)
,
intent.putExtra("btimap", bitmap);
使用Intent.getParcelableExtra("key")
,
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("btimap");
答案 1 :(得分:1)
在将其添加到intent,将其发送并解码之前将其转换为Byte数组。
//Convert to byte array
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Intent in1 = new Intent(this, Activity2.class);
in1.putExtra("image",byteArray);
然后在活动2中:
byte[] byteArray = getIntent().getByteArrayExtra("image");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);