ImageIO.read IllegalArgument Exception input == null

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ImageIO.read IllegalArgument Exception input == null

    Hallo liebe java freunde !

    Ich habe folgendes problem was mich gerade total zum verzweifeln bringt:

    ich möchte eine gif einlesen über ImageIO.read und auf ein panel zeichnen der code sieht folgendermaßen aus:

    Quellcode

    1. // hier wird der Pfad angegeben und das bild in das BUfferedImage array geladen
    2. BufferedImage[] heli = this.loadPics("/pics/heli.gif", 4);
    3. // mehtode loadPics
    4. private BufferedImage[] loadPics(String path, int pics) {
    5. // erzeugen eines BufferedImage arrays
    6. BufferedImage[] anim = new BufferedImage [pics];
    7. // BufferdImage zum laden des gesamten Bildes
    8. BufferedImage source = null;
    9. // ermitteln der URL des speicherortes
    10. URL pic_url = this.getClass().getClassLoader().getResource(path);
    11. // laden des Quellbildes
    12. try{
    13. source = ImageIO.read(pic_url);
    14. }catch(IOException e){}
    15. for(int x=0; x<pics;x++){
    16. // durch getSubimage wird das bild in die angegbenen einzelbilder zerlegen
    17. // WICHTIG: Kann nur Bildsequenzen laden die hintereinander gezeichnet sind
    18. anim[x] = source.getSubimage(x*source.getWidth()/pics,0,source.getWidth()/pics
    19. ,source.getHeight());
    20. }
    21. return anim ;
    22. }
    Alles anzeigen


    So und hier wird mir immer geworfen input== null ich habe die Url überprüft die ist aufjeden fall richtig das bil heißt auch so hat das richtige format und ich am richtigen platz ich vermute den Fehler irgenwie bei URL pic_url aber ich weiß nicht was daran falsch sein soll ???

    Bitte helft mir bin am verzweifeln !

    Mit freundlichen grüßen
  • Ich behaupte es liegt an der Pfadangabe:
    "/pics/heli.gif"
    Wo liegt denn das pics-Verzeichnis? direkt im Quellcode-Verzeichnis (src o.ä.)? Wenn ja muss es "pics/heli.gif" sein (ohne den führenden Slash)
    Wenn pics aber im gleichen Verzeichnis wie die Klasse liegt und die Klasse in nem Paket liegt, solltest du den "Umweg" über den Classloader (warum machst du das überhaupt?) nicht machen. Dann bekommst du die URL des Bildes mit

    Quellcode

    1. this.getClass().getResource("pics/heli.gif");