Я экспериментирую с Андроид FaceDetector. Мне нужно использовать растровый файл (faces.bmp из групповой фотографии), так как я не нашел способ использовать камеру android в эмуляторе Android. Но BitmapFactory.decodeFile возвращает null, и в документации только говорится, что он возвращает null, если растровое изображение не может быть декодировано. Это всего лишь 24-разрядный .bmp-файл. Я использую Eclipse в Windows 7. Неправильно ли я указал pathName? Нужно ли использовать что-то, кроме 24-битного .bmp-файла?Почему BitmapFactory.decodeFile возвращает null?
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);
}
}
}
@jacknad Sorry человека, как это ответ на название вашего вопроса? Разве вы не спрашивали, как decodefile возвращает null. Разве это не пропускает все это вместе? – baash05
@ baash05 да, он пропускает вопрос, поскольку он использовал его только для тестирования. –
правильный ответ .. потому что ваши файлы ресурсов не существуют по тому же пути на карманном компьютере, что и на вашем рабочем столе. Файл не существует, а null - правильный ответ. – baash05