# weiß = transparent



## ich² (30. Mai 2007)

Hallo Forum,

ich möchte den weißen Hintergrund (ja, er ist wirklich komplett weiß (255, 255, 255)) eines png-Bildes transparent haben. Dazu habe ich mir folgende Methode geschrieben:


```
public static void main(String[] args) throws IOException {
		
		BufferedImage img = ImageIO.read(new File("C:/blub.png"));
		for (int i = 0; i < img.getWidth(); i++) {
			for (int j = 0; j < img.getHeight(); j++) {
				if (img.getRGB(i, j) == new Color(255, 255, 255).getRGB()) {
			//		System.out.println("blob");
					img.setRGB(i, j, new Color(255, 255, 255, 0).getRGB());
				}
			}
		}
		ImageIO.write(img, "png", new File("C:/blub.png"));
	}
```

leider ist das Bild nach dem Speichern immernoch mit einem weißen Hintergrund versehen. Gebe ich eine andere Farbe an, funktioniert alles ohne Probleme. Weiß jemand woran das liegt? Danke!

mfg

ich²


----------



## Marco13 (30. Mai 2007)

Es ist erstmal nicht gesagt, dass das BufferedImage, das du dort bekommst, einen Alpha-Kanal hat. Vermutlich hat es keinen. (Siehe BufferedImage.TYPE_INT_RGB vs. Siehe BufferedImage.TYPE_INT_ARGB). Man kann vermutlich das ImageIO so konfigurieren, dass es ein BufferedImage mit Alphakanal auspuckt. Zum Testen(!) könntest du aber auch sowas machen wie

```
public static void main(String[] args) throws IOException {
      
      BufferedImage img = ImageIO.read(new File("C:/blub.png"));
      BufferedImage img2 = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
      int white = new Color(255, 255, 255).getRGB();
      int transparent = new Color(255, 255, 255, 0).getRGB();
      for (int i = 0; i < img2.getWidth(); i++) {
         for (int j = 0; j < img2.getHeight(); j++) {
            if (img.getRGB(i, j) == white) {
         //      System.out.println("blob");
               img2.setRGB(i, j, transparent);
            }
            else
            {
               img2.setRGB(i, j, img.getRGB(i,j));
            }
         }
      }
      ImageIO.write(img2, "png", new File("C:/blub.png"));
   }
```


----------



## ich² (30. Mai 2007)

Hallo,

so funktioniert es, danke!

mfg

ich²


----------

