Как бы я мог направить значок, который проходит здесь, для другого цвета? Скажем, я хотел взять белое изображение и сделать его немного темнее. Я посмотрел на BufferedImages и так, но я не могу найти ничего, что впишется в настройки, которые я использую. Я также должен отметить, что я рисую изображения на JLabel, если это имеет значение.Как оттолкнуть ImageIcon
Вот источник, который я использую, чтобы вы могли получить представление о том, с чем я работаю.
public class Icon extends ImageIcon{
private int scale = 1;
private boolean mirror = false;
public Icon(URL url) throws IOException{
super(ImageIO.read(url));
}
public void setScale(int scale){
this.scale = scale;
}
@Override
public synchronized void paintIcon(Component c, Graphics g, int x, int y) {
Graphics2D g2 = (Graphics2D)g.create();
int height = 0, width = this.getIconWidth(), x1 = 1;
if(mirror || scale != 1){
height = -this.getIconHeight();
}
if(mirror){
x1 = -1;
}else{
width = 0;
}
g2.translate(width * scale, height);
g2.scale(x1 * scale, 1 * scale);
super.paintIcon(c, g2, x, y);
}
public boolean isMirror() {
return mirror;
}
public void setMirror(boolean mirror) {
this.mirror = mirror;
}
}
Используйте 'ColorTintFilter' из дубликата ссылки выше, либо непосредственно, либо изменить его к вашим потребностям. Это будет красиво отображать ваше изображение. Однако, если вы просто хотите сделать изображение немного темнее, вы можете просто перекрасить его прозрачным черным (например, «новый цвет (0x20000000, true)» или аналогичный). – haraldK