要解决AndroidX相机核心ImageAnalysis.Analyser导致图像失真的问题,您可以尝试以下方法:
ImageAnalysis imageAnalysis = new ImageAnalysis.Builder()
.setTargetResolution(new Size(width, height))
.setTargetRotation(rotation)
.build();
ImageAnalysis imageAnalysis = new ImageAnalysis.Builder()
.setTargetResolution(new Size(width, height))
.setTargetRotation(rotation)
.setImageReaderMode(ImageAnalysis.ImageReaderMode.ACQUIRE_LATEST_IMAGE)
.build();
imageAnalysis.setAnalyzer(executor, new ImageAnalysis.Analyzer() {
@Override
public void analyze(@NonNull ImageProxy image) {
// 获取图像数据
Image mediaImage = image.getImage();
if (mediaImage != null) {
// 将图像数据转换为位图
Bitmap bitmap = correctedBitmap(mediaImage);
// 进行图像处理
processImage(bitmap);
// 关闭图像
mediaImage.close();
}
// 释放图像代理
image.close();
}
});
private Bitmap correctedBitmap(Image image) {
// 获取图像的旋转角度
int rotation = image.getRotationDegrees();
// 获取图像的大小
int width = image.getWidth();
int height = image.getHeight();
// 创建正确格式的位图
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
// 将图像数据绘制到位图上
ImageUtils.imageToBitmap(image, bitmap, rotation);
return bitmap;
}
这些方法中的代码示例仅供参考,您可能需要根据您的具体需求和环境进行适当的修改和调整。
上一篇:AndroidX项触摸监听器