[英]bitmap is not being compress that can be share on whats app
我正在使用 camerax API 图像被成功捕获,然后我使用以下方法将其转换为 bitmap
fun Image.toBitmap(): Bitmap {
val buffer = planes[0].buffer
buffer.rewind()
val bytes = ByteArray(buffer.capacity())
buffer.get(bytes)
return BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
}
这种方法效果很好,我成功地将 setBitMapImage 设置为图像视图问题是我想分享这个捕获的 bitmap 图像关于什么是应用程序视图意图而不保存在存储中下面的方法是我用来压缩 bitmap
private fun btmToPng(){
try {
val baos = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, baos)
baos.close()
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
}
但收到此错误
引起:android.os.TransactionTooLargeException:数据包大小51917416字节
获取捕获图像的 URI 后,您可以使用URI而不是Bitmap 共享
public void share(Uri uri) {
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.setPackage("com.whatsapp");
if (SDK_INT < 30)
shareIntent.putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(activity, activity.getPackageName() + ".provider", uri);
else
shareIntent.putExtra(Intent.EXTRA_STREAM,uri);
activity.startActivity(Intent.createChooser(shareIntent, "Share to"));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.