Android S4使用定制相机拍摄的照片损坏
我在三星S4中的定制相机有一个奇怪的问题。我测试过的所有其他设备都能正常工作,即使是在S4 mini上 拍摄的照片如下所示: 有这些白色条纹,这些是什么 代码没有做任何奇怪的事情,我想Android S4使用定制相机拍摄的照片损坏,android,android-camera,Android,Android Camera,我在三星S4中的定制相机有一个奇怪的问题。我测试过的所有其他设备都能正常工作,即使是在S4 mini上 拍摄的照片如下所示: 有这些白色条纹,这些是什么 代码没有做任何奇怪的事情,我想 @Override public void onPictureTaken(byte[] data, Camera myCamera) { File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE); if (pi
@Override
public void onPictureTaken(byte[] data, Camera myCamera) {
File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
if (pictureFile == null) {
return;
}
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
resizeImage(pictureFile.getPath());
Intent returnIntent = new Intent();
returnIntent.putExtra("path", pictureFile.getPath());
setResult(RESULT_OK, returnIntent);
finish();
} catch (FileNotFoundException e) {
//stuff
} catch (IOException e) {
//stuff
}
}
这是调整大小,可能与以下事项有关:
private void resizeImage(String picturePath) {
try {
Bitmap bitmapIn = BitmapFactory.decodeFile(picturePath);
Float w = (float) bitmapIn.getWidth();
Float h = (float) bitmapIn.getHeight();
Float aspect = w / h;
if ((w * h) > 120000) {
Bitmap bitmapOut;
int neww = 400;
if (w < h) {
neww = 300;
}
Float newh = (h * neww) / w;
bitmapOut = Bitmap.createScaledBitmap(bitmapIn, neww,
newh.intValue(), false);
File file = getOutputMediaFile(MEDIA_TYPE_IMAGE);
FileOutputStream fOut;
fOut = new FileOutputStream(file);
bitmapOut.compress(Bitmap.CompressFormat.JPEG, 60, fOut);
fOut.flush();
fOut.close();
bitmapOut.recycle();
} else {
}
bitmapIn.recycle();
} catch (Exception e) {
//stuff
}
}
private void resizeImage(字符串picturePath){
试一试{
位图bitmapIn=BitmapFactory.decodeFile(picturePath);
Float w=(Float)bitmapIn.getWidth();
Float h=(Float)bitmapIn.getHeight();
浮动方向=w/h;
如果((宽*高)>120000){
位图位图输出;
int neww=400;
if(w
也许您可以根据设备使用最佳图片大小来解决这个问题
也许是您的解决方案 我也遇到了同样的问题,三星S4出现了一个有趣的情况 当图像大小远小于预览的大小时,就会出现问题。例如:预览大小:1920 x 1080和640 x 480图片大小。所以设备设置了图片的最大分辨率,我不知道为什么
要解决此问题,必须合并两种大小:预览大小和图片大小。对我来说没关系。两种尺寸组合后,不会出现白色条纹!:-) 尝试使用较低的分辨率。我在我的CWAC相机库中遇到了这种情况,我暂时得出的结论是,一些设备的最大分辨率存在偏差。