Как изменить яркость изображения
Мой вопрос: Я хочу иметь возможность изменять яркость изображения ресурса и иметь три его экземпляра в виде ImageIcons. Один с яркостью 50% (темнее), другой с яркостью 75% (немного ярче) и, наконец, еще один с яркостью 100% (такой же, как исходное изображение). Я также хочу сохранить прозрачность.
Что я'я пробовал: яЯ искал вокруг, и, похоже, лучшее решение используетRescaleOp
но я просто могуне могу понять это. Я нене знаю, что такое scaleFactor и смещение. Вот'мой код для того, что ямы пробовали
public void initialize(String imageLocation, float regularBrightness, float focusedBrightness, float pressedBrightness, String borderTitle) throws IOException {
BufferedImage bufferedImage = ImageIO.read(ButtonIcon.class.getResource(imageLocation));
setRegularIcon(getAlteredImageIcon(bufferedImage, regularBrightness));
setFocusedIcon(getAlteredImageIcon(bufferedImage, focusedBrightness));
setPressedIcon(getAlteredImageIcon(bufferedImage, pressedBrightness));
setTitle(borderTitle);
init();
}
private ImageIcon getAlteredImageIcon(BufferedImage bufferedImage, float brightness) {
RescaleOp rescaleOp = new RescaleOp(brightness, 0, null);
return new ImageIcon(rescaleOp.filter(bufferedImage, null));
}
Звонок будет примерно таким:
seeATemplateButton.initialize("/resources/templateIcon-regular.png", 100f, 75f, 50f, "See A Template");
//I think my 100f, 75f, 50f variables need to change, but whenever I change them it behaves unexpectedly (changes colors and stuff).
Что происходит с этим кодом: Изображение появляетсяневидимый» Я знаю это'там, потому что этоs на JLabel с событием щелчка мыши на нем, и это прекрасно работает. Если я просто пропущу часть изменения яркости и скажуsetRegularIcon(new ImageIcon(Button.class.getResource(imageLocation));
это работает просто отлично, но, очевидно,не темнее.
Что я думаю мне нужно: Некоторые помогают понять, что,offset
scaleFactor
иfilter
Метод означает / делает, и, следовательно, какие числа дать для переменной яркости.
Любая помощь будет принята с благодарностью! Спасибо!