Hello,
I have a strange problem. I made a simple RGBImageFilter that just
returns 0xFFFF0000. Thats right, it simply replaces every pixel with
a full alpha red pixel.
My problem comes when using the filter…
      //filter     - is my red filter
      //myApplet   - is the applet I'm running this from
      //original   - is an image that was loaded from a .png file and has
                       transparency
      //newImage   - is a BufferedImage that I created already with the
                       same dimensions as the "original" image
      newContext = (Graphics2D)newImage.createGraphics();
      Image coloredImage = myApplet.createImage( 
             new FilteredImageSource(original.getSource(), filter));
      //draw the red image
      newContext.drawImage(coloredImage, 0,0, null);
      //draw the original image over top of the red background
      newContext.drawImage(original, 0,0, null);
      newContext.dispose();
      return newImage;
I have this replacing colors in a function, and as it turns out, calling
this repeatedly with the SAME original image, SOMETIMES results in a
red background.
Now originally I didn’t have my filter just returning red, I am just doing
this to illustrate my point. I would like to know, is there some way to
make sure the call to createImage(…) has finished making the Image
before I draw it to something else?
I am using the latest java 1.5.0_03 both for development and in my browser(IE 6),
and the appletviewer does the same thing.
Here is a pic of the problem in action:
http://hooble.dyndns.org/java/filterproblem.JPG
Thanks for any help you guys can provide! I don’t post here much, but I’m a long time reader.
