Saban Geschrieben 10. Juli 2008 Teilen Geschrieben 10. Juli 2008 Guten Tag zusammen, ich bin gerade dabei ein Programm in Java zu schreiben mit dem man Bestimmte Bildteile durch andere ersetzen kann. Dies mache ich mit der drawImage Methode. Dies Funktioniert auch aber nun habe ich das Problem das ich auch .gif Bilder bearbeiten möchte. Nun haben diese Standardmäßig das indizierte Farbmodell und wenn ich nun ein Bild mit dem Programm einfüge gibt es innerhalb des neu eingefügten Bilds komische Farbpixel usw. Also müsste ich nun vor dem Einfügen das Farbmodell auf RGB umberechnen und anschließend wieder zurück. Nun meine Frage wie kann ich das in Java machen ? Hier ist die Methode mit der ich das Bild einfüge: public static void bild_zeichnen (String str_img_org; String str_img_einf; int pos_x , int pos_y, String speicherort) throws Exception { JPanel jp = new JPanel(); MediaTracker media = new MediaTracker(jp); BufferedImage buff_img_org = ImageIO.read(new File(str_img_org));//liest die Bilder ein BufferedImage buff_img_einf = ImageIO.read(new File(str_img_einf)); Graphics2D graphic2d = buff_img_org.createGraphics(); media.addImage(buff_img_org, 1); media.addImage(buff_img_einf, 2); media.waitForAll(); Boolean b_überprüfen = graphic2d.drawImage(buff_img_einf,pos_x,pos_y,null);//zeichnet das neue Bild media.removeImage(buff_img_org); media.removeImage(buff_img_einf); graphic2d.dispose(); if(b_überprüfen == false) { JOptionPane.showMessageDialog(oberfläche.jf_main, "<html>Achtung Fehler beim Laden des Bildes !<br>" + "Bild '"+new File(str_img_org).getName()+"' wird <br>" + "übersprungen."); } File output_file = new File(speicherort); ImageIO.write(buff_img_org, output_file.getName().substring(output_file.getName().length()-3, output_file.getName().length()), output_file); MfG Saban Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.