画像を読み込んで青色効果にし、半透明にする簡単なプログラムを作ってみました。画像のピクセルで実行し、RGB の青の値とアルファ値を変更して実行しています。画像に素敵な青い効果を加えることに成功しました。しかし、画像の不透明度を変更することはできませんでした。ピクセルのアルファ値をどのように変更しても、画像には影響しないようです。
これが私のコードです:
try {
image1 = ImageIO.read(new File("image1.png"));
} catch(IOException e) {e.printStackTrace();}
for(int x=0;x<image1.getWidth();x++) {
for(int y=0;y<image1.getHeight();y++) {
int rgb = image1.getRGB(x, y);
Color color = new Color(rgb);
int r = color.getRed();
int g = color.getGreen();
int b = color.getBlue();
int a = color.getAlpha();
System.out.println(a);
a= 100;
if(b<155)
b+=100;
else
b=255;
color = new Color(r,g,b,a);
image1.setRGB(x, y, color.getRGB());
}
}
更新:私もこれを試しました。まだ動作しません:
for(int x=0;x<image1.getWidth();x++) {
for(int y=0;y<image1.getHeight();y++) {
int rgb = image1.getRGB(x, y);
Color color = new Color(rgb,true);
int r = color.getRed();
int g = color.getGreen();
int b = color.getBlue();
int a = color.getAlpha();
a= 100;
if(b<155)
b+=100;
else
b=255;
rgb = rgb | b;
rgb = rgb & 0x33ffffff;
image1.setRGB(x, y, rgb);
}
}