Мне интересно, как человек может изменить альфа-прозрачность цвета, если задан шестнадцатеричный цветовой код. Например, если дано Color.red.getRGB()
Как я могу изменить его на альфа до 0x80?Как изменить альфа предопределенного шестнадцатеричного цвета?
Чтобы выразить это в контексте, я работаю над статическим методом, чтобы оттолкнуть BufferedImage, создав графическое устройство с данного изображения и сделав полупрозрачную маску с этим, избавкой от графики и возвратом образ. Он работает, но вы должны сами определить альфа в данном шестнадцатеричном цветовом коде. Я хочу дать объект «Цвет» и удвоить между 0 и 1.0, чтобы определить интенсивность тонирования. Вот мой код:
public static Image tintImage(Image loadImg, int color) {
Image gImage = loadImg;
Graphics2D g = gImage.image.createGraphics();
Image image = new Image(new BufferedImage(loadImg.width, loadImg.height, BufferedImage.TYPE_INT_ARGB));
for(int x = 0; x < loadImg.width; x++) {
for(int y = 0; y < loadImg.height; y++) {
if(loadImg.image.getRGB(x, y) >> 24 != 0x00) {
image.image.setRGB(x, y, color);
}
}
}
g.drawImage(image.image, 0, 0, null);
g.dispose();
return gImage;
}
Также рассмотрите «RescaleOp», увиденный здесь (http://stackoverflow.com/a/5864503/230513), чтобы настроить цветные полосы изображения. – trashgod