使用自定义相机,图像质量很差

Piy*_*ush 6 camera android

我正在使用自定义相机并且工作正常,但问题是图像以非常低(差)质量保存.为了克服它,我已经尝试了所有的建议和实现.喜欢 ,

parameters.setJpegQuality(100);
parameters.setPictureFormat(ImageFormat.JPEG);
Run Code Online (Sandbox Code Playgroud)

这不起作用.之后我用过了

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);
Run Code Online (Sandbox Code Playgroud)

这也行不通.它的质量仍然很差.

注意:相机预览显示质量正常,但问题是将捕获的图像保存到SD卡文件夹.

高级帮助将不胜感激!

Piy*_*ush 5

最后我的问题解决了.

在我parameters拍摄图像之前,我正在设置相机预览

 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();
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

所以在我在我的片段中调用此函数之前,我已经在此方法之前设置了参数.

mPreview.setParams(params);// This was the mistake what i have done !
mPreview.takePicture();
Run Code Online (Sandbox Code Playgroud)

删除后终于解决了 mPreview.setParams(params);