Почему BitmapFactory.decodeFile возвращает ноль? - PullRequest
1 голос
/ 27 января 2011

Я экспериментирую с андроидом FaceDetector.Мне нужно использовать файл растрового изображения (faces.bmp из групповой фотографии), так как я не нашел способа использовать камеру Android в эмуляторе Android.Но BitmapFactory.decodeFile возвращает ноль, а в документации говорится, что он возвращает ноль, если растровое изображение не может быть декодировано.Это всего лишь 24-битный файл .bmp.Я использую Eclipse в Windows 7. Я неправильно указал pathName?Нужно ли использовать что-то кроме 24-битного файла .bmp?

public class MyFaces extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final int width = 600;
        final int height = 600;
        final int maxFaces = 8;
        FaceDetector faceDetector = new FaceDetector(width, height, maxFaces);
        String pathName = "../res/drawable-hdpi/faces.bmp";
        try {
         Bitmap bitmap = BitmapFactory.decodeFile(pathName);
         Face faces[] = new Face[maxFaces];
            int nFaces = faceDetector.findFaces(bitmap, faces);
            Log.d(this.getClass().toString(), "Faces: " + nFaces);
  } catch (Exception e) {
   Log.e(this.getClass().toString(), e.getMessage(), e);
  }
    }
}

1 Ответ

3 голосов
/ 27 января 2011

Если вы только тестируете, то вместо Bitmap bitmap = BitmapFactory.decodeFile(pathName); вы можете использовать:

Bitmap bitmap = BitmapFactory.decodeResource(R.drawable.faces);
...