BufferedImage mit farbwerten füllen

Status
Nicht offen für weitere Antworten.

sousou

Bekanntes Mitglied
Hallo,


ich kontrolliere gerade 2 Bilder auf ihrer gleichheit dabei hat ein bild ein Fehler. Ich möchte nun den Bereich wo beide Pixel gleich sind in einen BufferedImage ein 0x0 setzen und wo die pixel ungleich sind dann ein 0xFFFFFF.

Also so gesehen das man dann ein schwarz weiß Bild hat.

Dann sieht man auch welcher Teil der Fehler ist. Wie erstellt man nur ein Buffered Image in dem man werte setzen kann.

Also welche Methode vom BufferedImage braucht man?

LG
 

sousou

Bekanntes Mitglied
danke aber ich meine beim BufferedImage name = ..... was mus hier hin?

das etwa? dann wird ja die alte Datei mit den neuen Werten überschrieben oder?
image2 = ImageIO.read( new File( "F:\\Users\\Jousef\\Documents\\bild1-klein.png" ) );

oder man macht das set in einer neuen datei?

jemand da vielleicht ne ahnung von?
lg
 

eRaaaa

Top Contributor
Java:
BufferedImage image3 = new BufferedImage(x, y, 1);
wobei dann halt x und y durch int werte ersetzen werden müssen. (width, height)

bzw, wenn du eh nur eine binärdatei erstellen willst, kannst du auch

Java:
BufferedImage image3 = new BufferedImage(x, y, 12);
meines wissens nutzen
 
Zuletzt bearbeitet:

sousou

Bekanntes Mitglied
könntest du mal bitte gucken was da nicht so stimmt:

ich glaub das liegt an der 1 als dritter parameter...
Code:
    void lesenFehlerBild() throws IOException{

          // neuen BufferedImage mit 0xFFFFFF für fleck und 0x0 für kein fleck füllen!1
       int x = 0, y = 0;
       image3 = new BufferedImage( x, y, 1);

        
        for ( x = 0; x < w; x ++ ){
            
                for (  y = 0; y < h; y++  ){

                    // die farbwerte an position x y auslesen
                   Color px = new Color(image.getRGB(x, y));
                   Color px2 = new Color(image2.getRGB(x, y));

                    // die einzelnen farbwerte von bildok und bild nicht okay anzeigen:
                 //  System.out.println("Rot:"+px.getRed()+"Grün:"+ px.getGreen()+"Blau"+px.getBlue());
                  // System.out.println("Rot:"+px2.getRed()+"Grün:"+ px2.getGreen()+"Blau"+px2.getBlue());


                    // RGB zu HSB umwandeln (eigene Mehotde später schreiben!)
                   float[] HSB  =  Color.RGBtoHSB(px.getRed(), px.getGreen(),px.getBlue(), (new float[3]));

                   HSB[0] *= 360;  // *360  (für den Farbton)
                   HSB[1] *= 100; // * 100  (für Sättigung und Helligkeit)
                   HSB[2] *= 100; // * 100  (für Sättigung und Helligkeit)
                    
                  // System.out.println("nr.one:"+HSB[0]+"nr.two"+HSB[1]+"nr three"+HSB[2]);


                   float[] HSB2  =  Color.RGBtoHSB(px2.getRed(), px2.getGreen(),px2.getBlue(), (new float[3]));

                   HSB2[0] *= 360;  // *360  (für den Farbton)
                   HSB2[1] *= 100; // * 100  (für Sättigung und Helligkeit)
                   HSB2[2] *= 100; // * 100  (für Sättigung und Helligkeit)
                   
                  // System.out.println("nr.one:"+HSB2[0]+"nr.two"+HSB2[1]+"nr three"+HSB2[2]);

                   
             

                   
                   if (HSB[1] - HSB2[1] > 0)
                   {
                        image3.setRGB(x, y, 0xFFFFFF);
                   }
                   else
                   {  
                        image3.setRGB(x, y, 0x0);
                   }


               
        
                }



        }

    }



anstatt der 1 im BufferedImage hab ich ne 12 gemacht und dann kommt da folgende fehlermeldung:

run:
Exception in thread "main" java.lang.IllegalArgumentException: Width (0) and height (0) must be > 0
at java.awt.image.SampleModel.<init>(SampleModel.java:108)
at java.awt.image.MultiPixelPackedSampleModel.<init>(MultiPixelPackedSampleModel.java:129)
at java.awt.image.MultiPixelPackedSampleModel.<init>(MultiPixelPackedSampleModel.java:89)
at java.awt.image.Raster.createPackedRaster(Raster.java:843)
at java.awt.image.Raster.createPackedRaster(Raster.java:582)
at java.awt.image.BufferedImage.<init>(BufferedImage.java:431)
at ppmprojekt.Main.lesenFehlerBild(Main.java:78)
at ppmprojekt.Main.main(Main.java:171)
Breite FehlerBild:3075
Höhe FehlerBild:1451
Java Result: 1
ERSTELLEN ERFOLGREICH (Gesamtzeit: 0 Minuten 4 Sekunden)
 
Zuletzt bearbeitet:

madboy

Top Contributor
Was ist das Problem? Exception?

Übrigens verwende Konstanten, sofern vorhanden: [c]BufferedImage.TYPE_INT_RGB[/c] zum Beispiel. Das erleichtert die Lesbarkeit des Code sehr (und ist dabei auch noch sicher, falls sich mal der Wert einer Konstanten ändert :) )

EDIT:
1.:
Java:
int x = 0, y = 0;
image3 = new BufferedImage( x, y, 1);

2.: (aus Exception) "Width and height must be > 0"

Jetzt darfst überlegen, was da wohl nicht stimmt ;-)
 

sousou

Bekanntes Mitglied
hmmm....


das w und h der schleife sind definitiv > 0 ^^

ich denke du meinst das:

Code:
          // neuen BufferedImage mit 0xFFFFFF für fleck und 0x0 für kein fleck füllen!1
       int x = 0, y = 0;
       image3 = new BufferedImage( x, y, 1 );

       this.w = image3.getWidth();  // das hier ????
       this.h = image3.getHeight(); //????
        
        for ( x = 0; x < this.w; x++ ){
            
                for (  y = 0; y < this.h; y++  ){


aber irgenddwie doch nicht weil...

run:
Exception in thread "main" java.lang.IllegalArgumentException: Width (0) and height (0) cannot be <= 0
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
at java.awt.image.BufferedImage.<init>(BufferedImage.java:312)
at ppmprojekt.Main.lesenFehlerBild(Main.java:78)
at ppmprojekt.Main.main(Main.java:173)
Breite FehlerBild:3075
Höhe FehlerBild:1451
Java Result: 1

das noch kommt...
 

madboy

Top Contributor
Ich meine Zeile 173, in welcher ich eben das gepostete Code-Fragment vermute. Um es noch mal auf Deutsch zu sagen:
Du darfst ein BufferedImage nicht mit der Größe 0,0 oder kleiner erstellen. Eben das tust du aber in Zeile 173 :)
 

eRaaaa

Top Contributor
hä?

int x = 0, y = 0;
image3 = new BufferedImage( x, y, 1 );

ergibt doch garkeinen sinn. dein bild wäre jetzt 0x0 pixel!!! (wenns denn überhaupt gehen würde)
x und y sollten in deinem fall, vllt die breite und höhe der bilder image1 bzw image2 sein?!

/edit: zu spät :D
 

sousou

Bekanntes Mitglied
eine frage fäät mir grad ein.. kann man das was ich eben gesetzt habe nicht mit einen ImageIcon anzeigen?


oder gibst dazu ne andere Lösung das gesetzte anzeigen zu lassen.
 

eRaaaa

Top Contributor
klaro:

Java:
		ImageIcon myIcon = new ImageIcon(image3);

dann haste dein ImageIcon, dann kannste das z.b. mit einem JLabel anzeigen lassen:

Java:
JLabel label = new JLabel(myIcon);
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Mr.Strobel BufferedImage Exportieren Eclipse Java Basics - Anfänger-Themen 14
A BufferedImage zeigt nur schwarz Java Basics - Anfänger-Themen 3
A BufferedImage Pixel Java Basics - Anfänger-Themen 7
pkm Best Practice BufferedImage in JPane darstellen - aber wie? Java Basics - Anfänger-Themen 22
T BufferedImage in Jar Java Basics - Anfänger-Themen 8
C Problem beim laden eines BufferedImage Java Basics - Anfänger-Themen 2
S BufferedImage heller/dunkler machen mit RescaleOp Java Basics - Anfänger-Themen 2
D Jpg in BufferedImage Reader oder Array ablegen? Java Basics - Anfänger-Themen 5
F BufferedImage Speicher Nutzung Java Basics - Anfänger-Themen 2
S BufferedImage Java Basics - Anfänger-Themen 2
Ernesto95 BufferedImage Teilbereich wieder transparent setzen Java Basics - Anfänger-Themen 16
M BufferedImage performant einlesen Java Basics - Anfänger-Themen 5
A BufferedImage in Android einbinden - Bild spiegeln -wie? Java Basics - Anfänger-Themen 4
O BufferedImage drehen, falsch positioniert Java Basics - Anfänger-Themen 5
K BufferedImage, Bilder laden Java Basics - Anfänger-Themen 15
H BufferedImage DPI verändern Java Basics - Anfänger-Themen 5
S jpeg bzw bufferedimage als PDF Speichern Java Basics - Anfänger-Themen 13
W von Graphics in BufferedImage Java Basics - Anfänger-Themen 10
H BufferedImage Java Basics - Anfänger-Themen 5
F BufferedImage aus short[][][] Java Basics - Anfänger-Themen 3
Luk10 NPE bei BufferedImage[] Java Basics - Anfänger-Themen 4
I Probleme beim Laden eins BufferedImage Java Basics - Anfänger-Themen 8
P BufferedImage als raw speichern Java Basics - Anfänger-Themen 3
C BufferedImage + Popup/Overlay Java Basics - Anfänger-Themen 2
E BufferedImage drucken Java Basics - Anfänger-Themen 3
R BufferedImage in JLabel Java Basics - Anfänger-Themen 2
G Serialisiertes BufferedImage wieder einlesen Java Basics - Anfänger-Themen 13
G Jpanel -> BufferedImage konvertieren Java Basics - Anfänger-Themen 7
G BufferedImage in Applet laden Java Basics - Anfänger-Themen 8
Q BufferedImage aus Bild in jar Java Basics - Anfänger-Themen 2
? BufferedImage löschen Java Basics - Anfänger-Themen 4
F Farben eines ganzen BufferedImage invertieren Java Basics - Anfänger-Themen 2
K Graphics2D und BufferedImage Java Basics - Anfänger-Themen 3
D wie kann ich ein BufferedImage komprimieren? Java Basics - Anfänger-Themen 7
reibi TIFF nach BufferedImage wandeln Java Basics - Anfänger-Themen 72
reibi Farbiges BufferedImage umwandeln zu 2farbig SchwarzWeiss Java Basics - Anfänger-Themen 7
E nullpointer bei BufferedImage Java Basics - Anfänger-Themen 2
M BufferedImage erzeugt OutOfMemoryError Java Basics - Anfänger-Themen 10
B Vorteil von Graphic2D und BufferedImage? Java Basics - Anfänger-Themen 6
U BufferedImage anzeigen, imageIcon oder paintComponent(); Java Basics - Anfänger-Themen 6
X Image nach BufferedImage wandeln ? Java Basics - Anfänger-Themen 9
T BufferedImage kopieren Java Basics - Anfänger-Themen 6
G Image -> BufferedImage Java Basics - Anfänger-Themen 4
M Image/BufferedImage Java Basics - Anfänger-Themen 4
T Multiple BufferedImage Java Basics - Anfänger-Themen 3
G Area mit Teil-Image füllen Java Basics - Anfänger-Themen 0
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4
sashady 2D-Array mit Zahlenmuster füllen Java Basics - Anfänger-Themen 4
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
T Array füllen Java Basics - Anfänger-Themen 11
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
J Combobox füllen mit Wertausgabe von andere Klasse Java Basics - Anfänger-Themen 3
A Array richtig füllen Java Basics - Anfänger-Themen 2
krgewb Array später füllen Java Basics - Anfänger-Themen 1
E Arrays nach best Muster füllen Java Basics - Anfänger-Themen 4
A Ein Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 4
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
neerual Feld mit Einsen und Nullen füllen und überschreiben Java Basics - Anfänger-Themen 1
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
B Array via Schleife mit ungeraden bzw geraden Zahlen füllen Java Basics - Anfänger-Themen 7
G Model mit Models füllen Java Basics - Anfänger-Themen 9
T Best Practice Liste geschickt füllen Java Basics - Anfänger-Themen 5
Bluedaishi Datum in Jtextarea füllen Java Basics - Anfänger-Themen 5
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
D Best Practice Objekt automatisch im Konstruktor füllen? Java Basics - Anfänger-Themen 9
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
A Methoden Array mit Methode nacheinander füllen Java Basics - Anfänger-Themen 3
T Arrays mit Schleife füllen Java Basics - Anfänger-Themen 11
D JComboboxen in Abhängigkeiten füllen Java Basics - Anfänger-Themen 7
K Array mit for-each Schleife füllen Java Basics - Anfänger-Themen 5
Z Array-Index einmalig je mit Random füllen Java Basics - Anfänger-Themen 7
K "Elegantes" Füllen eines Models? Java Basics - Anfänger-Themen 20
W String in einer Zeile mit Alphabet füllen? Java Basics - Anfänger-Themen 8
K String Array basierend auf int Array füllen Java Basics - Anfänger-Themen 2
Y Erste Schritte Spielfeld, Array füllen mit Treffern...?! Java Basics - Anfänger-Themen 3
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
N Arrays mit Zufallzahlen füllen und Statistiken berechnen Java Basics - Anfänger-Themen 5
K Zweidimensionales Array erstellen und zufällig mit 0 und 1 füllen Java Basics - Anfänger-Themen 11
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
W Erste Schritte füllen Attribute java Klasse in for Schleife und Array Java Basics - Anfänger-Themen 16
L Subklasse von ArrayList nur mit bestimmten Objekten füllen Java Basics - Anfänger-Themen 1
B Methoden Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 4
B Methoden 2D Arrays füllen Java Basics - Anfänger-Themen 3
C zwei dimensionales array mit "1 " füllen Java Basics - Anfänger-Themen 8
H zweidimensionales array füllen Java Basics - Anfänger-Themen 6
JG12111989 2D Array mit Array[] füllen Java Basics - Anfänger-Themen 21
J Array mit Zahlen füllen Java Basics - Anfänger-Themen 28
S JTable dynamisch mit Datenbankinhalten füllen Java Basics - Anfänger-Themen 6
W JTable mit einem JButton-Array füllen Java Basics - Anfänger-Themen 4
T Progressbar füllen? Java Basics - Anfänger-Themen 3
V Methoden Matrix als 1D Array mit Werten füllen Java Basics - Anfänger-Themen 12
R ActionListener mit for Schleife füllen. Java Basics - Anfänger-Themen 4
S JComboBox automatisch füllen Java Basics - Anfänger-Themen 3
L OOP Grafik in Circle Objekt füllen Java Basics - Anfänger-Themen 3
B Array erstellen,ausgeben,mit zufallszahlen füllen aber wie ? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben