我正在制作一个Android应用程序,允许用户拍照,然后应用程序将打印一些RGB值等。我正在保存手机上拍摄的照片,然后我从这些png文件中制作一个位图。我刚刚发现我应该暂停应用程序片刻才能保存图像。但我仍然认为我拍摄的一些图像的位图为空。如果我用它的6种不同颜色拍摄Rubik's cube的图像,我几乎从未得到空指针异常。但是如果我拍摄一张墙或其他东西的图片,那么位图就是= null。
有人知道我应该怎么做以解决这个问题吗?
Bitmap myBitmap;
final String dir =
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) +
"/picFolder/";
try{
file = dir+Integer.toString(side)+".jpg";
File f = new File(file);
options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
myBitmap = BitmapFactory.decodeFile(file,options);
for(int i = 0; i<3; i++){
for(int j = 0; j<3; j++){
cube[side-1][i][j] = getColor(myBitmap, i, j);
}
}
}catch (Exception e){
Log.e("er0r", "HERE:::: " + e.toString());
}
答案 0 :(得分:0)
当我在我的应用程序中开发相机时,我也遇到了同样的问题。 对于某些图像,它工作正常,对于某些图像,它显示为null。 后来我发现这是一个尺寸问题。 我修正了这个问题,
private static Bitmap compressBitmap(Bitmap original) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
original.compress(Bitmap.CompressFormat.JPEG, 100, out);
Bitmap decoded = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()));
return decoded;
}
如果您需要任何其他帮助,请与我们联系。