这是我在 onPreviewFrame 方法中的代码。
显示在 surfaceHolder 上的框架很好。
我一开始已经用这段代码设置了分辨率
mCameraParameter = mCamera.getParameters();
mCameraParameter.setPreviewSize(100,150);
mCameraParameter.setPreviewFrameRate(20);
mCameraParameter.setPreviewFormat(PixelFormat.JPEG);
mCamera.setParameters(mCameraParameter);
但是image得到的图片是640*480
我想知道为什么我不能更改预览分辨率。
public void onPreviewFrame(byte[] data, Camera camera) {
Log.e("PreviewCallBack", "Preview");
Camera.Parameters parameters = camera.getParameters();
Log.e("Picture Size", "width : " + parameters.getPreviewSize().width);
Log.e("Picture Size", "height : " + parameters.getPreviewSize().height);
Log.e("Array Size", "data.length : " + data.length);
YuvImage image = new YuvImage(data, parameters.getPreviewFormat(),
parameters.getPreviewSize().width,parameters.getPreviewSize().height, null);
File file = new File(Environment.getExternalStorageDirectory()
.getPath() + "/"+/*System.currentTimeMillis()*/"out.jpg");
FileOutputStream filecon = null;
try {
filecon = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
image.compressToJpeg(
new Rect(0, 0, image.getWidth(), image.getHeight()), 90,
filecon);
}
};
最佳答案
也许您正在尝试设置不受支持的预览尺寸。最好先调用“getSupportedPreviewSizes()”,然后在调用 setPreviewSize() 之前检查您的设备是否支持您要设置的预览尺寸。
关于android - 我无法更改 android 相机分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6887503/