# Farbe eines Pixel im Image ändern



## Mike (20. Dez 2004)

Hallo,

ich möchte von einem eingelesenen GIF einzelne Pixelwerte ändern.
Dazu habe ich ein BufferedImage benutzt und prüfe dann pixelweise. Ist es ein schwarzes Pixel, soll es rot werden.
Zum Bestimmen des Farbwertes benutze ich getRGB(), zum Setzen wollte ich dann setRGB() benutzen.
Folgenden Code habe ich bisher:

```
BufferedImage bimg = new BufferedImage(20,20,BufferedImage.TYPE_INT_ARGB);
		try{
			bimg = ImageIO.read(new File("test.gif"));
		}catch(IOException ioex){}
		g.drawImage(bimg, 100, 100, 20, 20 , this);
		Color color = new Color(210,20,0);
		int farbe = color.getRGB();
		for(int i = 1; i<bimg.getWidth(); i++)
			for (int j = 1; j < bimg.getHeight(); j++) {		
				if(bimg.getRGB(i,j)==Color.BLACK.getRGB())
				{	
					bimg.setRGB(i,j,Color.RED.getRGB());
					// bimg.setRGB(i,j,farbe);
					// bimg.setRGB(i,j,0xffff0000);
				}	
			}
		
		g.drawImage(bimg, 200, 200, 20, 20 , this);
```


Er findet schonmal alle schwarzen Pixel und geht entsprechend ins if, aber er setzt mir das Pixel dann nicht in die neue Farbe. in Zeile 12-14 hab ich  es auf verschiedenen Weisen probiert, aber nichts ging.
Wäre sehr dankbar, wenn mir jemand helfen könnte.


----------



## Mike (20. Dez 2004)

Grml, also, ich hab nun rausgefunden, das setRGB() an sich schon klappt.
Das GIF bei mir ist schwarz/weiß. Nun kann ich nur die Pixel in schwarz oder weiß machen, aber nicht farbig. Wenn ich jedoch das GIF zB mit PaintShop öffne und der Palette eine Farbe hinzufüge (muss nichtmal ein Pixel in dieser Farbe malen) und speichere, dann kann ich genau diese Farbe auch in Java setzen...
Aber das bringt mir nun nicht viel, da ich viele GIFs habe udn die nicht immer ändern kann (weiß theoretisch auch nicht, welche GIFs ich habe, sind immer andere, also per Batch in PaintShop einmalig alle ändern ist nicht...)
Wie kann ich Farben nun trotzdem setzen, auch wenn die im Bild nicht sind.
Kann mir da bitte jemand helfen?


----------

