Die Transparente Color

Developer_X

Top Contributor
Hi, ich habe eine Frage, wie kann ich eine farbe (Color) transparent machen?

Ich habe ein BufferedImage m,
und will mit folgendem Algorhythmus alle Pixel die die Farbe c haben, transparent machen, welchen Color wert muss ich dann nehmen?

Java:
					for(int x = 0;x<m.getWidth();x++)
					{
						for(int y = 0;y<m.getHeight();y++)
						{
							if(new Color(m.getRGB(x, y)).equals(c))
							{
								m.setRGB(x, y, new Color(0,0,0).getRGB()); // Welchen Farbwert muss ich hier einsetzen?
							}
						}
						jpb.setValue((int) (100.0/x *x));
					}

Danke für eure Hilfen, Developer_X
 

Marco13

Top Contributor
new Color(0,0,0,0).getRGB()
oder besser gleich
0

Trotzdem wird das schon wegen des "new Color" in der if-Abfrage schcklich langsam werden. Zieh' das da raus.
 
G

Gastredner

Gast
Trotzdem wird das schon wegen des "new Color" in der if-Abfrage schcklich langsam werden. Zieh' das da raus.
Stimmt, arbeite lieber mit den entsprechenden int-Werten. Die RGBA-Werte werden im BufferedImage als int-Werte gespeichert. Diese int-Werte kannst du dir über [c]getRGB(int x, int y)[/c] (oder auch einen ganzen Ausschnitt über die überladene getRGB()-Methode) geben lassen und anschließend über Bit-Operationen verarbeiten. Die 8-bittigen RGBA-Werte werden dabei in der Reihenfolge RGBA in den int kodiert. Über die Bitoperatoren << und >> kannst du dir die entsprechenden Werte im byte-Bereich besorgen:
Code:
int rgba;
byte red = (byte)(rgba >> 24) & 0xFF;
Willst du lieber direkt die Werte zwischen 0 und 255 haben, dann lässt du einfach den Cast auf byte weg.
 

Developer_X

Top Contributor
Ich hab das geändert, bei der if-Abfrage, ihr hattet vollkommen recht.

Aber wenn ich (das ist eine PNG Datei) die Farbe ersetzen lassen durch 0,0,0,0 sprich:

Java:
					for(int x = 0;x<m.getWidth();x++)
					{
						for(int y = 0;y<m.getHeight();y++)
						{
							if(m.getRGB(x, y)==c.getRGB())
							{
								m.setRGB(x, y, new Color(0,0,0,0).getRGB());
							}
						}
					}

dann wird der hintergrund nur schwarz, und nichts weiter, ich möchte aber, dass er durchsichtig wird, versteht ihr?
Transparent.
Was kann ich dagegen tun?
 

Schandro

Top Contributor
Ist den das BufferedImage überhaupt von einem Typ der Transparenz unterstützt? (Also bspw. TYPE_IN_ARGB)

Wenn ja, kommt es natürlich drauf an wo du das BufferedImage drauf malst. Wenn du es auf einen Schwarzen hintergrund malst, ist es ja logisch das die transparenten Stellen schwarz angezeigt werden.....
 

Developer_X

Top Contributor
Ich male es nirgendwo drauf, sondern ich lade ein Bild in das BufferedImage, mit getRGB und setRGB ändere ich die Pixelfarben, und dann speichere ich es gleich wieder ab.
 

Developer_X

Top Contributor
Ich lade es so ein:
Java:
		try
		{
			m = ImageIO.read(new File(s));
		}
		catch(Exception e)
		{
		}

Wie kann ich das was du gesagt hast einbauen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K 3D-Grafik Transparente Textur AWT, Swing, JavaFX & SWT 3
L Transparente Fenster AWT, Swing, JavaFX & SWT 2
P transparente bild in Java SWT AWT, Swing, JavaFX & SWT 5
H Transparente Splash-Screen AWT, Swing, JavaFX & SWT 5
H Swing und endlich Transparente Fenster! AWT, Swing, JavaFX & SWT 3
E Transparente Fenster AWT, Swing, JavaFX & SWT 3
G Bild mit transparente farbe für den IE6 AWT, Swing, JavaFX & SWT 5
B transparente Farbe AWT, Swing, JavaFX & SWT 3
K Transparente Menüs (rechts unten über Uhr) AWT, Swing, JavaFX & SWT 8
G Transparente Grafik über JMF Video zeichnen AWT, Swing, JavaFX & SWT 2
V Transparente Fenster AWT, Swing, JavaFX & SWT 5
S Wie verhalten sich transparente Grafiken? AWT, Swing, JavaFX & SWT 5
S Transparente AWT Komponenten? AWT, Swing, JavaFX & SWT 2
K transparente textareas , scrollpanels, etc AWT, Swing, JavaFX & SWT 4
K Transparente Farbe festlegen AWT, Swing, JavaFX & SWT 3
Juelin setzen background color für selected Row im Tableview AWT, Swing, JavaFX & SWT 21
C JToggleButton disabled Text Color AWT, Swing, JavaFX & SWT 11
D JUNG change color of an spceific AWT, Swing, JavaFX & SWT 4
R AWT Color von Point AWT, Swing, JavaFX & SWT 1
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
K Color-Objekt erzeugen in CMYK AWT, Swing, JavaFX & SWT 2
M Swing JTable GroupableHeader Background Color AWT, Swing, JavaFX & SWT 4
E To get a color text on the TextArea AWT, Swing, JavaFX & SWT 4
E To get color text on the TextArea AWT, Swing, JavaFX & SWT 5
J JSlider Color Ticks AWT, Swing, JavaFX & SWT 1
Seikuassi SWING - (Hoffentlicher) simpler Color-Fehler AWT, Swing, JavaFX & SWT 4
F java.awt.Color AWT, Swing, JavaFX & SWT 8
S Rectangle Border Color AWT, Swing, JavaFX & SWT 13
K AWT Welche color benutzen? AWT, Swing, JavaFX & SWT 4
Y Globale Font-Color definieren AWT, Swing, JavaFX & SWT 5
J AWT setBackground(Color.orange) ist unter Win7 Aero nicht orange AWT, Swing, JavaFX & SWT 3
B Color String Code AWT, Swing, JavaFX & SWT 3
C Swing Button color transparent AWT, Swing, JavaFX & SWT 4
B Color.BLUE in String umwandeln AWT, Swing, JavaFX & SWT 4
W Verschiedene Foreground color in Combo SWT Auswahlliste AWT, Swing, JavaFX & SWT 5
lumo SWT Table Selection Color +Focus Out AWT, Swing, JavaFX & SWT 14
A SWT - group - border color? AWT, Swing, JavaFX & SWT 4
V SWT Color Problem AWT, Swing, JavaFX & SWT 2
S Color in Cell AWT, Swing, JavaFX & SWT 2
O JTabbedPane - Selected Color? AWT, Swing, JavaFX & SWT 1
X JButton color change AWT, Swing, JavaFX & SWT 2
G Color AWT, Swing, JavaFX & SWT 5
S noobfrage: background color wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
M setColor mit Fehler cannot fiend symbol (java.awt.Color) AWT, Swing, JavaFX & SWT 2
R SWT color Objekt AWT, Swing, JavaFX & SWT 4
L setBorder(BorderFactory.createLineBorder(Color,2) AWT, Swing, JavaFX & SWT 4
T Background Color JSpiner AWT, Swing, JavaFX & SWT 2
D ComboBox mit Farben aus java.awt.color AWT, Swing, JavaFX & SWT 4
L Farbregler - Werte als Zahl ausgeben - Color AWT, Swing, JavaFX & SWT 5
S java.awt.color Schriftfarbe AWT, Swing, JavaFX & SWT 3
T setBackground(Color) funktioniert nicht mit HTML? AWT, Swing, JavaFX & SWT 2
N java.awt.Color zu HTML Farbcode (JEditorPane) AWT, Swing, JavaFX & SWT 1
G standard blau (windows) != color.blue AWT, Swing, JavaFX & SWT 2
G Unsupported color conversion request AWT, Swing, JavaFX & SWT 3
S Hilfe bei Color(Helligkeit) AWT, Swing, JavaFX & SWT 4
S Object in Color umwandeln AWT, Swing, JavaFX & SWT 2
S Selection Color in JTabbedPane AWT, Swing, JavaFX & SWT 5
T Color lässt sich nicht verändern AWT, Swing, JavaFX & SWT 3
Z JPanels spiegeln und JLabel Background-color AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben