holtiwilan
Mitglied
Einen schönen Guten Tag.
Ich habe folgenden Filter, um in einem Image eine Transparente Farbe zu setzten:
Wenn ich jetzt z.B. ein Jpg habe, wird leider nciht der ganz Hintergrund transparent, sondern eben nur die pixel genau der Farbe.
Meine Frage ist nun: Gibt es eine möglichkeit, dieser Klasse auch noch eine Toleranz mitzugeben. Das ich sagen kann 10 int werte im RGB Raum Toleranz?
Könnte ich das einfach mit einer Schleife machen? Oder gibt es da eine Elegantere Lösung?
Vielen Dank für die Hilfe schon mal.
Tim
Ich habe folgenden Filter, um in einem Image eine Transparente Farbe zu setzten:
Code:
public class MakeImageTransparent {
public static Image makeColorTransparent(Image im, final Color color) {
ImageFilter filter = new RGBImageFilter() {
// the color we are looking for... Alpha bits are set to opaque
public int markerRGB = color.getRGB() | 0xFF000000;
public final int filterRGB(int x, int y, int rgb) {
if ( (rgb | 0xFF000000) == markerRGB) {
// Mark the alpha bits as zero - transparent
return 0x00FFFFFF & rgb;
}
else {
// nothing to do
return rgb;
}
}
};
ImageProducer ip = new FilteredImageSource(im.getSource(), filter);
return Toolkit.getDefaultToolkit().createImage(ip);
}
}
Wenn ich jetzt z.B. ein Jpg habe, wird leider nciht der ganz Hintergrund transparent, sondern eben nur die pixel genau der Farbe.
Meine Frage ist nun: Gibt es eine möglichkeit, dieser Klasse auch noch eine Toleranz mitzugeben. Das ich sagen kann 10 int werte im RGB Raum Toleranz?
Könnte ich das einfach mit einer Schleife machen? Oder gibt es da eine Elegantere Lösung?
Vielen Dank für die Hilfe schon mal.
Tim