【发布时间】:2014-12-22 23:16:33
【问题描述】:
我需要获取 RGBA 值,修改 RGB,然后再次设置 RGB(和 A)值。
但是,它似乎为所有像素返回 255,即使我知道我正在加载的图像中有透明像素。
这是一个 SSCCE
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class TestImage {
public static void main(String args[]) {
try {
BufferedImage image = ImageIO.read(new File("/home/affy/Pictures/salamenceavatar.png"));
BufferedImage buff = new BufferedImage(
image.getWidth(),
image.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
Graphics2D g = buff.createGraphics();
g.drawImage(image, 0, 0, null);
for(int x = 0; x < image.getWidth(); x++) {
for(int y = 0; y < image.getHeight(); y++) {
Color c = new Color(buff.getRGB(x, y));
int alpha = c.getAlpha();
System.out.println(alpha);
}
}
}catch (IOException e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
我认为您需要让我们知道您看到的错误消息、异常或错误行为。 “我不能”通常是不够的信息。