将\packages\apps\Camera\src\com\android\camera\SettingChecker.java中:
case ROW_SETTING_JPEG_QUALITY:
int jpegQuality = getJpegQuality(context, Integer.parseInt(value));
parameters.setJpegQuality(jpegQuality);
break;
修改为:
case ROW_SETTING_JPEG_QUALITY:
int jpegQuality = 100;
parameters.setJpegQuality(jpegQuality);
break;
即可。
jpegQuality的范围为1~100,您可按需求自行更改,目前6572的JB3默认是90。
可能带来的问题:
当jpegQuality被设置为大于95时,在复杂场景下encode出来的jpeg file大小可能会超过我们预留的buffer,从而产生各种各样的问题,例如拍出来的照片无法预览,在图库应用中显示无缩略图。
当ap设置的jpegQuality>95时,底层在使用前会强制降低为95。
若不降Quality、而增加capture file buffer大小,也可解决此问题。但File size过大,会影响连拍的performance(降低连拍速度、连拍不能达到最大张数等)。所以,最终采用降Quality方式解决。
case ROW_SETTING_JPEG_QUALITY:
int jpegQuality = getJpegQuality(context, Integer.parseInt(value));
parameters.setJpegQuality(jpegQuality);
break;
修改为:
case ROW_SETTING_JPEG_QUALITY:
int jpegQuality = 100;
parameters.setJpegQuality(jpegQuality);
break;
即可。
jpegQuality的范围为1~100,您可按需求自行更改,目前6572的JB3默认是90。
可能带来的问题:
当jpegQuality被设置为大于95时,在复杂场景下encode出来的jpeg file大小可能会超过我们预留的buffer,从而产生各种各样的问题,例如拍出来的照片无法预览,在图库应用中显示无缩略图。
当ap设置的jpegQuality>95时,底层在使用前会强制降低为95。
若不降Quality、而增加capture file buffer大小,也可解决此问题。但File size过大,会影响连拍的performance(降低连拍速度、连拍不能达到最大张数等)。所以,最终采用降Quality方式解决。