Это вопрос, я использую правильный путь или нет. И по правильному пути, я имею в виду, есть ли более эффективный с точки зрения памяти способ сделать это?Умножает BufferedImage, чтобы установить яркость правильно?
Я использую 1 источник изображения:
String imgurl = "imgreadertest8.png";
BufferedImage loadedimage = ImageIO.read(getClass().getResource(imgurl));
BufferedImage image = ImageIO.read(getClass().getResource(imgurl));
рисую изображение в методе краска(). Но иногда мне нужно установить яркость:
public void setBrightness(float brightness)
{
RescaleOp rescaleOp = new RescaleOp(brightness, 15, null);
rescaleOp.filter(loadedimage, image);
}
Так что я читал одно и то же изображение, два раза. Один из них имеет «окончательный» BufferedImage (он не совсем окончательный ... Но я не могу использовать final в этом контексте, потому что его нужно использовать вне конструктора (который вы не видите здесь, но это так)), который используется как шаблон, а другой - для редактирования и рисования.
Дополнительная информация: Прежде чем пытаться таким образом, я сделал это:
String imgurl = "imgreadertest8.png";
BufferedImage loadedimage = ImageIO.read(getClass().getResource(imgurl));
BufferedImage image = loadedimage;
Но когда я отредактировать изображение, он редактирует loadedimage, а также. В значительной степени потому, что они одни и те же.
Итак ... Есть ли другой способ установить яркость этого изображения, БЕЗ загрузки одного и того же изображения два раза?