:
BufferedImage bim=null;
try {
bim=ImageIO.read(new File("..."));
}
catch (Exception ex) { System.err.println("error in bim "+ex); }
int wc=bim.getWidth(), hc=bim.getHeight();
BufferedImage b=new BufferedImage(wc, hc, BufferedImage.TYPE_INT_ARGB);
b.getGraphics().drawImage(bim, 0, 0, null);
BufferedImage b2=new BufferedImage(wc, hc, BufferedImage.TYPE_INT_ARGB);
RescaleOp no=new RescaleOp(new float[]{1f, 1, 1, 1f}, new float[]{0, 0, 0, -50}, null);
b2=no.filter(b, null);
BufferedImage b3=new BufferedImage(wc, hc, BufferedImage.TYPE_INT_ARGB);
b3.getGraphics().drawImage(bim, 0, 0, null);
float offset=(b2.getRGB(0, 0)&0xff000000)>>24, a=(b3.getRGB(0, 0)&0xff000000)>>24;
no=new RescaleOp(new float[]{1, 1, 1, 1}, new float[]{0, 0, 0, -a+offset}, null);
b3=no.filter(b3, null);
今、B3はB2のアルファを持っています。
アルファ不均一な画像の場合、ピクセルごとにピクセルを処理する必要があります。
[この1つ](http://stackoverflow.com/questions/660580/change-the-alpha-value-of-a-bufferedimage)と同様の記事をご覧ください。 –