相机对象上的setOneShotPreviewCallback(),预览图像的裁剪版本

时间:2011-05-18 15:23:51

标签: java android camera bytearray android-camera

我正在开发一个相当流程的应用程序,我需要拍摄图像并在每次按下按钮时保存它。在按下按钮时,我触发相机对象的setOneShotPreviewCallback()方法,以获得表示当时图像的byte[]。在此之后的那一刻,我采用这个byte[]并使用YUVImage对象将其转换为位图,该对象在处理器上非常重。为了减少这种情况,我使用以下方法裁剪图像:

Rect rect = new Rect(4*w/10, 0, 9*w/10, h);
final ByteArrayOutputStream output_stream = new ByteArrayOutputStream();
yuv_image.compressToJpeg(rect, 100, output_stream);

我想知道我是否只能使用byte[]进行此操作而不必将其转换为YUV图像?就像在触发回调之前一样,创建了Rect并且byte[]只填充了Rect中的图像数据?

1 个答案:

答案 0 :(得分:1)

尝试设置PreviewFormat:

parameters.setPreviewFormat(ImageFormat.JPEG);