나는 나의 현재 구현은 분명하지만, 매우 느리게하는 VolatileImage
자바 반전 이미지 알파
의 알파 채널을 반전해야 할 상황이있다;
public BufferedImage invertImage(VolatileImage v) {
BufferedImage b = new BufferedImage(v.getWidth(), v.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
Graphics g = b.getGraphics();
g.drawImage(v, 0, 0, null);
for(int i = 0; i < b.getWidth(); i++) {
for(int(j = 0; j < b.getHeight(); j++) {
Color c = new Color(b.getRGB(i, j, true));
c = new Color(c.getRed(), c.getGreen(), c.getBlue(), 255 - c.getAlpha());
b.setRGB(i, j, c.getRGB());
}
}
return b;
}
이 작업은 정상적으로 수행되지만 속도가 느립니다. 나는 큰 이미지를 가지고 있으며 이것을 빨리해야한다. 나는 AlphaComposite
으로 주위를 어지럽 혔지만 아무 소용이 없다 - 이것은 정말로 내가 이해하는 한 퇴비화하는 문제가 아니다.
255 - x
이 0 <= x < 256
에 대해 x & 0xff
과 같으면 어떻게 든 알파 채널을 통해 XOR 할 수 있습니까?
아마도 'IntBuffer'를 래핑하고 각'int'를 처리할까요? – fge