tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
261
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    EGJSoldier EGJSoldier ist offline Mitglied Gold
    Registriert seit
    Nov 2008
    Beiträge
    218
    Hallo alle zusammen,
    ich stehe hier gerade vor nem Problem. Hier ersteinmal der QT:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
      public Image getImage(){
        try{
          URL jarURL = new File("E:/java/library/standard_icon/jlfgr-1_0.jar").toURI().toURL();
          ClassLoader classLoader = new URLClassLoader(new URL[]{jarURL});
          InputStream is = new BufferedInputStream(classLoader.getResourceAsStream("toolbarButtonGraphics/development/Applet16.gif"));
          
          /*ByteArrayOutputStream bai = new ByteArrayOutputStream();
          bai.write(is.read());
          System.out.println(bai.toString());
          byte[] buf = bai.toByteArray();
          for(int i = 0; i < buf.length; i++){
            System.out.println(buf[i] + ", " + i);
          }
          System.out.println("--------");
        
          Image img = Toolkit.getDefaultToolkit().createImage(buf);*/
          System.out.println("lskg");
          Image img = ImageIO.read(is);
        
          return img;
        }
        catch(Exception e){
          e.printStackTrace();
          return null;
        }
      }

    So, das ist meine Methode getImage, die aus einer Jar- Datei, die irgendwo auf dem Rechner ist, ein Bild lesen soll. So den Pfad habe ich angegeben. Alles schön und gut. Mein Problem ist jetzt: Wie kriege ich das Imageobjekt als Rückgabe. Ich habe es ja im InputStream drin, aber wie kriege ich das da wieder raus****

    Ich hoffe, ihr könnt mir helfen. Ich bedanke mich schonmal im vorraus.

    David
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Code java:
    1
    
    URL imagePath = this.class.getResource("/de/tutorials/resources/bild.png");
    oder alternativ
    Code java:
    1
    
    URL imagePath = Class.getClass.getResource("/de/tutorials/resources/bild.png");
    um auf die Datei "bild.png" im Paket "de.tutorials.resources" zuzugreifen
    Und am besten nutzt du gleich ImageIcon, sofern du das Bild nicht bearbeiten willst:
    Code java:
    1
    
    ImageIcon bild = new ImageIcon(this.class.getResource("/de/tutorials/resources/bild.png"));

    EDIT:
    Einen Pfad brauchst du nicht angeben, sofern die andere jar-Datei im gleichen Verzeichnis liegt, siehe auch http://openbook.galileocomputing.de/...feaa7501f0d82f

    Wenn du auf ein Bild in einem Jar-File in einem anderen Verzeichnis zugreifen willst, solltest du unbedingt relative Pfade verwenden und die Datei am besten über das jar://-Protokoll/URI Scheme zugreifen, siehe http://download.oracle.com/javase/6/...onnection.html
    Geändert von genodeftest (11.09.11 um 15:31 Uhr)
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  3. #3
    EGJSoldier EGJSoldier ist offline Mitglied Gold
    Registriert seit
    Nov 2008
    Beiträge
    218
    So, das ist meine Methode getImage, die aus einer Jar- Datei, die irgendwo auf dem Rechner ist, ein Bild lesen soll.
    Es ist je eine externe Jar Datei. Diese Datei hat eigentlich nichts mit meinem Projektverzeichniss zu tun. Aber das ist ja nicht das Problem. das Problem ist, den InputStream in ein Bild "umzuwandeln".

    David
     

  4. #4
    SE Tutorials.de Gastzugang
    Also erlich : warum du dir da den Umweg über einen URLClassLoader machst versteh ich nicht.
    Ich würde das JAR erstmal ganz normal als JarFile öffnen , mit der Enum die du über JarFile.entries() bekommst nach der Datei suchen , einen InputStream öffnen und das bild mit ImageIO laden. Also eigentlich nur etwas anders vom laden des Jar als du.
    Was mich nur wundert : WAS funktioniert denn nicht so wie es soll ? Weil ImageIO.read(InputStream) macht doch genau das was du willst ... oder ?
     

  5. #5
    EGJSoldier EGJSoldier ist offline Mitglied Gold
    Registriert seit
    Nov 2008
    Beiträge
    218
    Also das Imageobjekt scheint leer zu sein. Ich kann es nicht so genau feststellen. Wenn ich abfrage, ob das Objekt null ist, dann kommt manchmal true und manchmal false raus. Keine Ahnung woran das liegen könnte?

    Edit: Hat sich erledigt. Das Problem ist ein anderes. Und zwar hat er ein Problem damit, das GIF Bild anzuzeigen. Andere Informationen, wie Weite und Höhe, kann ich auslesen.

    Trotzdem danke für die Hilfe.

    David
    Geändert von EGJSoldier (11.09.11 um 18:39 Uhr)
     

  6. #6
    SE Tutorials.de Gastzugang
    Gut ... dann wäre herausfinden warum es manchmal NULL ist.
     

Ähnliche Themen

  1. mailformular in externer PHP datei?
    Von kharn im Forum PHP
    Antworten: 1
    Letzter Beitrag: 01.06.11, 10:48
  2. Dateistart von externer Datei
    Von Monchichu im Forum Java
    Antworten: 8
    Letzter Beitrag: 11.11.07, 10:04
  3. Css in externer Datei (Fehler !)
    Von steff aka sId im Forum CSS
    Antworten: 2
    Letzter Beitrag: 29.01.05, 21:13
  4. Antworten: 4
    Letzter Beitrag: 01.08.04, 13:55
  5. sound aus externer datei
    Von druckgott im Forum Flash Plattform
    Antworten: 10
    Letzter Beitrag: 31.08.02, 11:37