Transparenzfilter für BufferedImage?

spawn3141

Grünschnabel
Ich habe in einer SQL Datenbank gifs die ich als BufferedImage auslesen soll.
Die geschieht so:
Code:
Blob blob = resultSet.getBlob("Data");
InputStream is = blob.getBinaryStream();
BufferedImage buffInput = ImageIO.read( is );

Das BufferedImage wird dann per drawImage gezeichnet. Es werden aber mehrere Ebenen übereinander gezeichnet. Jede Ebene ist weitgehend weiß bis auf ein Paar schwarze Striche (=Straßen). Wie kann ich jetzt die weißen Stellen Transparent machen damit sich nur die schwarzen Striche überlappen und ich diese noch von jeder Ebene sehen kann ?

Ich würde mich interessieren ob falls in der Datenbank die gifs schon mit Transparenz vorliegen die leeren stellen durch meine lademethode (siehe oben) weiß werden oder ob diese Information erhalten bleiben würde.

Hoffe ich habe mich verständlich ausgedrückt und mir kann jemand helfen
 
ok habs selber rausgefunden bzw woanders gefunden

Code:
import java.awt.*;
import java.awt.image.*;
 
public class TransparentFilter extends RGBImageFilter
{
private int color;
 
public TransparentFilter( Color color )
{
this.color = color.getRGB();
}
 
public int filterRGB( int x, int y, int rgb )
{
if ( rgb != color )
return rgb | 0xff000000;
else
return rgb & 0xffffff;	//transparent
 
}
 
}
 
Ich habe genau das gleiche problem, den source habe ich auch gefunden, jedoch weiß ich nciht, wie ich ihn anwenden soll.

kann mir irgendwer ein beispiel geben?
 
Zurück