我想预览图像保存为JPEG图像。
我试图写下面的代码:
public void onPreviewFrame(byte[] _data, Camera _camera)
{
if(settings.isRecording())
{
Camera.Parameters params = _camera.getParameters();
params.setPictureFormat(PixelFormat.JPEG);
_camera.setParameters(params);
String path = "ImageDir" + frameCount;
fileRW.setPath(path);
fileRW.WriteToFile(_data);
frameCount++;
}
}
但它无法打开保存文件为JPEG图像。 有谁知道如何预览画面保存为JPEG图像?
谢谢
结帐这个代码。 我希望它能帮助
camera.setPreviewCallback(new PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
// TODO Auto-generated method stub
Camera.Parameters parameters = camera.getParameters();
Size size = parameters.getPreviewSize();
YuvImage image = new YuvImage(data, ImageFormat.NV21,
size.width, size.height, null);
Rect rectangle = new Rect();
rectangle.bottom = size.height;
rectangle.top = 0;
rectangle.left = 0;
rectangle.right = size.width;
ByteArrayOutputStream out2 = new ByteArrayOutputStream();
image.compressToJpeg(rectangle, 100, out2);
DataInputStream in = new DataInputStream();
in.write(out2.toByteArray());
}
}
});
camera.startPreview();
你必须把它手动转换,也有Android平台的开发者名单上的一些例子,如果你浏览存档 - 主要处理与格式(亮度/色度等)的转换,然后将图像写入到一个位图,然后保存到一个文件。
这一切都有点痛的实在。
我之前预览设定Camera.Parameters.setPreviewFormat(PixelFormat.JPEG)的PreviewFormat,但似乎它并不能真正设置previewformat ......顺便说一句,预览的默认格式是YCbCr_420_SP .. ..
你必须先检查哪些支持预览格式为您的设备通过调用getSupportedPreviewFormats()。 确保JPEG呼吁setPreviewFormat(PixelFormat.JPEG)之前支持。
JPEG是不是摄像头预览的格式。 作为官方文件说,
“只有ImageFormat.NV21和ImageFormat.YUY2支持现在”
为了从相机预览获得一个图片,你需要定义预览格式,如下:
Camera.Parameters parameters;
parameters.setPreviewFormat(ImageFormat.NV21); //or ImageFormat.YU2
在这之后,你压缩和JPEG保存为达尼的例子。
_data可能不是JPEG格式。 你叫Camera.Parameters.setPreviewFormat(PixelFormat.JPEG)
调用开始前预览?