【发布时间】:2025-12-02 03:10:01
【问题描述】:
为什么 onPictureTaken(byte[] data, Camera camera) 和 onPreviewFrame(byte[] data, Camera camera) 的数据字节数组大小不同。前者有原始图像,因此给了我一个干净的图像,后者给了我一个像素化的图像。我没有使用 onPictureTaken,因为它有时不会被触发。 如果我的图片尺寸是 1600 x 1400,屏幕尺寸是 800 x 480 onPictureTaken 给我 1600 x 1400 和 onPreviewFrame 给我 800 x 480
这是我的代码:
mCamera.setOneShotPreviewCallback(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
Camera.Parameters parameters = camera.getParameters();
int format = parameters.getPreviewFormat();
//YUV formats require more conversion
if (format == ImageFormat.NV21 || format == ImageFormat.YUY2 || format == ImageFormat.NV16) {
int w = parameters.getPreviewSize().width;
int h = parameters.getPreviewSize().height;
// Get the YuV image
YuvImage yuv_image = new YuvImage(data, format, w, h, null);
}
我被这个问题困扰了一个星期。
附: - 如果是负面评价,请说明原因
【问题讨论】:
标签: android android-camera android-bitmap