2011-01-27 3 views
1

J'expérimente avec le FaceDetector Android. Je dois utiliser un fichier bitmap (faces.bmp provient d'une photo de groupe) car je n'ai pas trouvé un moyen d'utiliser la caméra Android dans l'émulateur android. Mais BitmapFactory.decodeFile renvoie null et la documentation indique seulement qu'il renvoie null si le bitmap n'a pas pu être décodé. C'est juste un fichier .bmp 24 bits. J'utilise Eclipse sous Windows 7. Ai-je spécifié pathName de manière incorrecte? Dois-je utiliser autre chose qu'un fichier .bmp 24 bits?Pourquoi BitmapFactory.decodeFile retourne 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); 
    } 
    } 
} 

Répondre

3

Si vous testez juste alors à la place de Bitmap bitmap = BitmapFactory.decodeFile(pathName); vous pouvez utiliser:

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

@jacknad homme Désolé, comment cette réponse le titre de votre question? N'avez-vous pas demandé comment décodage renvoie null ... N'est-ce pas sauter tout cela ensemble? – baash05

+0

@ baash05 oui, il saute le problème car il ne l'utilisait que pour tester. –

+1

la bonne réponse est .. parce que vos fichiers de ressources n'existent pas sur le même chemin sur l'ordinateur de poche que sur votre bureau. Le fichier n'existe pas et null est la bonne réponse. – baash05

Questions connexes