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