У меня вопрос о настройке контраста, насыщенности и оттенка изображения, загруженного в jXImageView из библиотеки swingx.CollorAdjust с ImageView от SwingX?
У меня есть методы ColorAdjust.
ColorAdjust colorAdjust = new ColorAdjust();
colorAdjust.setContrast(0.3);
colorAdjust.setHue(-0.03);
colorAdjust.setBrightness(0.2);
colorAdjust.setSaturation(0.2);
Когда пользователь нажимает на кнопку «Enhancement», изображение должно немного изменить, но как это сделать? Помните: я использую jXImageView.
я увеличил контраст уже с помощью этого кода:
float brightenFactor = 1.5f;
BufferedImage imagem = (BufferedImage) jXImageView2.getImage();
RescaleOp op = new RescaleOp(brightenFactor, 0, null);
imagem = op.filter(imagem, imagem);
jXImageView2.updateUI();
Редактировать
Я tryied:
BufferedImage imagem = (BufferedImage) jXImageView2.getImage();
Image image = SwingFXUtils.toFXImage(imagem, null);//<--ERROR on that line (incompatible types: writable image cannot be converted to Image)
ColorAdjust colorAdjust = new ColorAdjust();
colorAdjust.setContrast(0.3);
colorAdjust.setHue(-0.03);
colorAdjust.setBrightness(0.2);
colorAdjust.setSaturation(0.2);
ImageView imageView = new ImageView(image);//<--ERROR on taht line no suitable constructor for ImageView(java.awt.Image)
imageView.setFitWidth(imagem.getWidth());
imageView.setPreserveRatio(true);
imagem = SwingFXUtils.fromFXImage(imageView.snapshot(null, null), null);
jXImageView2.setImage(imagem);
... но без успеха.
В то время как вы можете конвертировать 'BufferedImage' в и из' Image', я не если 'ImageView' знать будут применять значения «ColorAdjust» непосредственно к основному «изображению» или если они просто используют их для изменения способа его раскраски. Вы можете начать с просмотра ['SwingFXUtils'] (http://docs.oracle.com/javafx/2/api/javafx/embed/swing/SwingFXUtils.html) для преобразования между двумя форматами изображений – MadProgrammer
Спасибо за совет! –
Ahh, попробуйте [this] (https://gist.github.com/jewelsea/2870355)! – MadProgrammer