ColorModel ändern - indiziert zu RGB

Atze

Top Contributor
moin
hat jemand schonmal mit java boradmitteln ein BufferedImage vom IndexedColorModel in ein RGB ColorModel konvertiert?

mein problem ist, dass ich ein bild mit dem modus "indiziert" automatisiert umwandeln möchte, so dass es die ganze palette der rgb farben nutzen kann.

ich hab leider keinen plan von farbmodellen und weiß auch nicht wirklich wie das mit den indizierten faben genau läuft, jedoch weiß ich, dass es bei den modi einen unterschied gibt. indizierte bilder können nur einen bestimmten farbraum nutzen, rgb alle farben. wenn ich ein bild unter gimp öffne kann ich dort auch in den menüs von "indiziert" auf "RGB" umschalten.

wie macht gimp das? ein ColorModel lässt sich mit java zwar auslesen aber nicht setzen. hat da jemand erfahrungen oder tipps?
 

Marco13

Top Contributor
Hm... vielleicht nicht richtig verstanden, aber... kannst du das Bild nicht einfach in ein neues BufferedImage (mit TYPE_INT_RGB) reinzeichnen...?
 

Atze

Top Contributor
doch, anscheinend richtig verstanden :)

ok, also ist der (übliche / einzige) weg, ein gleiches bild vom typ rgb zu erstellen und pixel für pixel darauf zu zeichnen?

es geht mir nur darum, wenn ich das indizierte bild lade und anzeige sieht es ziemlich bescheiden aus, warum weiß ich nicht (da fehlt mir der plan vom image-handling allgemein).

anbei einmal der exakt gleiche bildausschnitt als rgb und indiziertes bild
zeichnen kann ich ja dann auf beiden bildern mmit allen farben, nur die anzeige sieht eben blöd aus. warum?
 

Anhänge

  • rgb.png
    rgb.png
    431 Bytes · Aufrufe: 42
  • indiziert.png
    indiziert.png
    403 Bytes · Aufrufe: 42

Marco13

Top Contributor
Es wird ja nicht Pixel für Pixel drauf gezeichnet: Ich meinte NICHT sowas sie setRGG/getRGB, sondern das alte Bild direkt mit dem Graphics-Objekt des neuen in das neue reinzeichnen.
Ehrlich gesagt hab' ich noch nie wirklich mit Indizierten Farben was gemacht (ist wohl... unüblich...?!). Muss man da nicht auch sagen, wie viele Farben es geben soll? Hat das Bild (vielleicht standardmäßig) dann nur 256 farben?
 

Atze

Top Contributor
genau das mein ich ja, ich hab da auch keinen plan und hoffe hier hat jemand erfahrungen. :)

eigentlich ist es ja so, wenn ich das indizierte bild in bspw gimp öffne kann ich es nur mit den farben bemalen, die in diesem mapping hinterlegt sind. also wenn es nur grün und rot hat und die indizierten farben nur die beiden sind, kann ich es nur rot und grün bemalen. wenn ich unter bild - modus - rgb einstelle, kann ich alle farben nutzen. hier sieht das bild aber in beiden fällen gleich aus.

wenn ich das indizierte bild allerdings als bufferedImage lade und in nem panle anzeige, gibt es einen unterschied in der darstellung (siehe screenshots). malen kann ich im panel allerdings mit allen farben, in beiden fällen. "sicherheitshalber" würde ich dem bild beim laden aber doch lieber ein rgb-colormodell geben, falls das möglich ist.

ich habe schon versucht mir ein neues bufferedImage über den Konstruktor

BufferedImage(ColorModel cm,
WritableRaster raster,
boolean isRasterPremultiplied,
Hashtable<?,?> properties)

zu erzeugen, aber dann fliegen exceptions, dass die raster bzw size nicht zusammenpassen würden.
 

Atze

Top Contributor
ok, dann schau ich mir die beispiele dort auch mal an.

ja, d.h. nein, einen speziellen grund gibt es nicht das referenzbild ist indiziert, in der praxis wird es wohl nicht häufig vorkommen dass ich ein indiziertes habe (geht um einen editor für texturen). nur für den "fall der fälle" wollte ich mich absichern :)

trotzdem schonmal danke für die infos :)
 

Atze

Top Contributor
moin

nur zur info, hab die ursache gefunden.

ich habe das bild beim splitten anscheinend (irgendwie) selbst verschandelt. warum ist mir zwar noch rätselhaft, aber naja.

ich splitte und zoome das bild, bzw zeichne einzelne teile nur in ein array aus tiles. dabei erzeuge ich aus dem alten bild neue, kleinere BufferedImages. hier lese ich den typ des (indizierten bildes) TYPE_USHORT_GRAY und setze dieses auch bei den neuen. dabei werden sie wohl "unschön" :)
wenn ich den neuen den typ TYPE_INT_RGB mitgebe, sieht alles knorke aus :D

danke nochmal an marco, dein tipp im ersten post war wohl richtig! :)

wobei ich mich ja frage warum er das bild "schön" anzeigt wenn ich es nicht splitte, nur zoomen und anzeigen funzt auch mit dem ursprünglichen typ (TYPE_USHORT_GRAY). und beim splitten lese ich diesen typ nur aus und setze ihn wieder.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
G ChoiceBox Elemente: Sprache ändern AWT, Swing, JavaFX & SWT 7
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
B Deckraft ändern AWT, Swing, JavaFX & SWT 1
Davee JavaFX ListView = null wenn ich sie in Laufzeit ändern will! AWT, Swing, JavaFX & SWT 16
missy72 JavaFX RowFactory Schriftfarbe ändern AWT, Swing, JavaFX & SWT 6
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
Hatsi09 GUI Input Farbe ändern AWT, Swing, JavaFX & SWT 0
W JavaFX CSS ändern wirft NPE AWT, Swing, JavaFX & SWT 8
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
OSchriever Layout über Radiobuttons ändern AWT, Swing, JavaFX & SWT 4
S Swing JLabel Text mit der Zeit ändern AWT, Swing, JavaFX & SWT 1
S JavaFX ListView Inhalte während Laufzeit ändern AWT, Swing, JavaFX & SWT 23
Shallty JavaFX MenuItem (Info) Icon ändern AWT, Swing, JavaFX & SWT 7
J Schriftart über einen Button ändern AWT, Swing, JavaFX & SWT 1
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
S JavaFX Boolean ändern Table View AWT, Swing, JavaFX & SWT 14
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
I Java Bildfarbe ändern wie bei Photoshop AWT, Swing, JavaFX & SWT 9
cool_brivk24 Swing Button Farbe ändern AWT, Swing, JavaFX & SWT 2
B Observer Pattern JLabel ändern AWT, Swing, JavaFX & SWT 7
K JavaFX TextInputDialog Button Text ändern AWT, Swing, JavaFX & SWT 1
Tronert JavaFX Linienstärke eines Separators ändern? AWT, Swing, JavaFX & SWT 3
das_leon AWT Button Design ändern AWT, Swing, JavaFX & SWT 5
S JavaFX GridPane Zellen Seitenverhätnis passend ändern mit der Stage AWT, Swing, JavaFX & SWT 0
S Parameter ändern in try/catch AWT, Swing, JavaFX & SWT 5
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
L JavaFX button über andere Klasse ändern AWT, Swing, JavaFX & SWT 7
T JavaFX Text des ProgressIndicators ändern AWT, Swing, JavaFX & SWT 2
T JavaFx Examples ändern liefert unerwartetes Ergebnis AWT, Swing, JavaFX & SWT 5
Z Swing JTree DefaultMultipleTreeNode Repräsentation ändern AWT, Swing, JavaFX & SWT 1
MaxG. Swing Farbe von Button beim drücken ändern AWT, Swing, JavaFX & SWT 4
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
K Liniendicke für Line Chart dynamisch ändern AWT, Swing, JavaFX & SWT 0
K Sprache ändern AWT, Swing, JavaFX & SWT 11
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
S JavaFX fxml datein mit menübar ändern AWT, Swing, JavaFX & SWT 20
W Kodierung (CharSet) beim Schreiben ändern AWT, Swing, JavaFX & SWT 1
Neumi5694 LookAndFeel Look & Feel nicht angezeigter Komponenten ändern AWT, Swing, JavaFX & SWT 6
T AWT Farben in einem Bild ändern AWT, Swing, JavaFX & SWT 8
N JLabel ändern während Programm ausgeführt wird AWT, Swing, JavaFX & SWT 4
krgewb Swing JTree - Farbe von nodes ändern AWT, Swing, JavaFX & SWT 4
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
Sugan Inhalte mit Threads ändern -> java.lang.IllegalStateException AWT, Swing, JavaFX & SWT 6
X JMenu Menu-Bar ausrichtung ändern im Programm AWT, Swing, JavaFX & SWT 0
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
F GUI Auflösung ändern - Koordianten und Proportions Problem AWT, Swing, JavaFX & SWT 21
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
R LookAndFeel Wie kann man die Textfarbe der Nimbus ProgressBar nach Füllstand ändern? AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
P Fenstergröße ändern, Panel soll gleich bleiben AWT, Swing, JavaFX & SWT 2
S JavaFX NullPointerException bei Versuch ImageView zu ändern AWT, Swing, JavaFX & SWT 1
F JavaFX Timeline Animation soll X- und Y-Position während Animation ändern AWT, Swing, JavaFX & SWT 2
E JLabel aus Runnable ändern AWT, Swing, JavaFX & SWT 2
Tom299 JavaFX TreeView Expanded-Icon ändern AWT, Swing, JavaFX & SWT 0
M JavaFX Progressbar bar und track Komponente zur Laufzeit ändern AWT, Swing, JavaFX & SWT 2
B 3D-Grafik Java 3D Licht während Laufzeit ändern AWT, Swing, JavaFX & SWT 0
T JavaFX "DefaultButton"-Design ändern AWT, Swing, JavaFX & SWT 8
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
Z Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern AWT, Swing, JavaFX & SWT 15
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
E JTable Hintergrund von geklickter Zelle ändern AWT, Swing, JavaFX & SWT 2
T JFileChooser Rahmenfarbe ändern AWT, Swing, JavaFX & SWT 1
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
Joew0815 Dropdown meue während der Laufzeit ändern. AWT, Swing, JavaFX & SWT 6
T MausClick soll TExt ändern AWT, Swing, JavaFX & SWT 6
Tom299 JavaFX Titelfarbe ändern AWT, Swing, JavaFX & SWT 7
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2
H Image im Array per Knopfdruck ändern AWT, Swing, JavaFX & SWT 6
S Farbe ändern bei der paint-Methode AWT, Swing, JavaFX & SWT 5
J in actionPerformed() Koordinaten ändern AWT, Swing, JavaFX & SWT 9
W JavaFX Label in Controller-Klasse in einer anderen Controller-Klasse ändern AWT, Swing, JavaFX & SWT 9
OnDemand Inhalt des Frames ändern AWT, Swing, JavaFX & SWT 4
D Swing JCombobox - Tooltip Location ändern AWT, Swing, JavaFX & SWT 4
I Swing Beim Fenster das kleine Symbol(ICS) ändern AWT, Swing, JavaFX & SWT 3
O Hintergrund von AffineTransfom (rotation) ändern AWT, Swing, JavaFX & SWT 0
G jLabel aus anderem Fenster ändern AWT, Swing, JavaFX & SWT 7
G JavaFX Pane ändern/"austauschen" AWT, Swing, JavaFX & SWT 2
S Swing JColorChooser Font ändern AWT, Swing, JavaFX & SWT 2
H LookAndFeel Lokal nimbusOrange ändern AWT, Swing, JavaFX & SWT 2
U Größe eines Button im Menü ändern AWT, Swing, JavaFX & SWT 1
R JavaFX Label ändern in aufgerufener AnchorPane AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben