dig*_*ino 1 size camera android image
我正在尝试使用Android Camera API但是当我拍照时,它的分辨率与我的Camera对象previewSize分辨率相同.
一些代码解释:
private Camera mCamera;
private Camera.PictureCallback mPictureCallback;
...
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
...
Camera.Parameters p = mCamera.getParameters();
p.setPreviewSize(mPreviewWidth, mPreviewHeight);
p.setPictureSize(mPictureWidth,mPictureHeight);
mCamera.setParameters(p);
...
}
public void onPictureTaken(byte[] imageData, Camera c) {
Bitmap bitmapPicture = BitmapFactory.decodeByteArray(imageData, 0, imageData.length);
bitmapPicture.getWidth(); //At this point the width is the same as mPreviewWidth and I want it to be mPictureWidth
}
/**
* This function is called when the user touches the surfaceview
*/
public void clickCamera(View v){
mCamera.takePicture(null, mPictureCallback, mPictureCallback);
}
Run Code Online (Sandbox Code Playgroud)
我如何在注释行中说,而不是previewSize我想拍摄照片配置到我的相机的pictureSize
dig*_*ino 10
好吧,花了一些时间调试后我发现了什么问题.
关键是,如果您的预览与其兼容,您只能设置图片大小.兼容我的意思是它们的分辨率的aspec比(宽高比)是相同的.
宽屏预览分辨率仅支持宽屏图像分辨率.
如果您为预览显示错误的分辨率(使用普通屏幕图片大小进行宽屏预览),则无法正确设置图片大小.
我创建了一个supportedPreviewSize和supportedPictureSize的示例
preview 800 x 600
2048 x 1536 [ ok ]
1600 x 1200 [ ok ]
800 x 600 [ ok ]
2048 x 1232 [ fail - 2048 x 1536 ]
1600 x 960 [ fail - 1600 x 1200 ]
1024 x 600 [ fail - 1600 x 1200 ]
preview 1024 x 600
2048 x 1536 [ fail - 2048 x 1232 ]
1600 x 1200 [ fail - 2048 x 1232 ]
800 x 600 [ fail - 1024 x 600 ]
2048 x 1232 [ ok ]
1600 x 960 [ ok ]
1024 x 600 [ ok ]
Run Code Online (Sandbox Code Playgroud)
我希望这将有助于将来遇到同样问题的人.
| 归档时间: |
|
| 查看次数: |
1779 次 |
| 最近记录: |