我正在使用自定义相机并且工作正常,但问题是图像以非常低(差)质量保存.为了克服它,我已经尝试了所有的建议和实现.喜欢,
parameters.setJpegQuality(100); parameters.setPictureFormat(ImageFormat.JPEG);
这不起作用.之后我用过了
List<Size> sizes = cameraParams.getSupportedPictureSizes(); Camera.Size size = sizes.get(0); for(int i=0;i<sizes.size();i++) { if(sizes.get(i).width > size.width) size = sizes.get(i); } cameraParams.setPictureSize(mPictureSize.width,mPictureSize.height);
这也行不通.它的质量仍然很差.
注意:相机预览显示质量正常,但问题是将捕获的图像保存到SD卡文件夹.
高级帮助将不胜感激!
解决方法
最后我的问题解决了.
在我拍摄图像之前,我在这里设置了相机预览的参数
public void takePicture() { mCamera.takePicture(new ShutterCallback() { @Override public void onShutter() { } },new PictureCallback() { @Override public void onPictureTaken(byte[] data,Camera camera) { } },new PictureCallback() { @Override public void onPictureTaken(final byte[] data,Camera camera) { data1 = data; if (mCamera != null) { mCamera.stopPreview(); } } }); }
所以在我在我的片段中调用此函数之前,我已经在此方法之前设置了参数.
mPreview.setParams(params);// This was the mistake what i have done ! mPreview.takePicture();