 <p>You can draw the image onto a new image adjusting its transparency as follows</p> <pre><code>public Raster transform(Image img, float alpha) { BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); bi.getGraphics().drawImage(img, 0, 0, null); RasterOp rop = new RescaleOp(new float[] { 1.0f, 1.0f, 1.0f, alpha }, new float[] { 0.0f, 0.0f, 0.0f, 0.0f }, null); Raster result = rop.filter(bi.getData(), null); return result; } </code></pre>