I seem to be having an issue where I create a BufferedImage which has transparent pixels like this:
BufferedImage buff = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_ARGB);
and it works fine until I filter it through the RescaleOp to darken it. When I do this, the image disappears. Here is my complete code just so you can see how I am setting this up:
BufferedImage buff = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics2D g = buff.createGraphics();
g.drawImage(i, 0, 0, null);
g.dispose();
RescaleOp filter = new RescaleOp(lightlevel, 0f, null);
buff = filter.filter(buff, null);
My question is, how do I fix this so the buffered image will have its pixels darkened without affecting the transparency?
You could try the RescaleOp that handles alpha, illustrated here, and use the same lightLevel for all color components.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With