0
我畫一個BufferedImage我該如何製作一個BufferedImage「faintter」?
BufferedImage map = ImageIO.read(getClass().getResource("map.png"));
,但我想無論是)把白過濾器頂部,或b)改變阿爾法值,以便它不亮。我試過
for (int x = 0; x < map.getWidth(); x++) {
for (int y = 0; y < map.getHeight(); y++)
{
int tempcolor = map.getRGB(x, y);
int newalpha = (60 << 24) | (tempcolor & 0x00ffffff);
map.setRGB(x, y, newalpha);
}
}
g.drawImage(map, 0, 0, this);
但圖像看起來完全像原始圖像。有任何想法嗎?
阿爾法只會讓下層通過展示。如果沒有低層,則沒有任何反應。 –
這很有道理。所以我可以在它後面添加一個白色圖層,並且可以解決問題。 – Martin
雖然可能比使用'RescaleOp'要慢,因爲你有一個支持alpha的圖像類型('BufferedImage.TYPE_xxx'),就像'BufferedImage.TYPE_INT_ARGB'一樣,你的原始代碼應該可以工作。 – haraldK