Как откатить изменения в картинке?

210
25 декабря 2017, 12:52

Цель: создать редактор изображений, который будет накладывать на картинку эффекты, выводить результат на экран, кроме того: возможность откатить изменения. Вроде все прозрачно, но почему-то кнопка отката не работает вообще, а изображение принимает последовательно все фильтры. И если второе "не баг, а фича" то вот отсутствие функции возвращения к первоначальному изображению, определенно недостаток программы.

this.workFile = file;
resultImg = reader(workFile);
baseImg = resultImg;
origin = painterLabel(resultImg);
bBack = newButton("Back", new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    origin = painterLabel(baseImg);
                    repaint();
                }
            });

Добавление файла, картинки и кнопки.

private BufferedImage reader(File file){
    BufferedImage img = null;
    try{
        img = ImageIO.read(file);
    }catch (IOException e){
        System.out.println(e);
    }
    return img;
}
private JLabel painterLabel(BufferedImage i){
    JLabel l = new JLabel();
    l.setIcon(new ImageIcon(i));
    return l;
}

Методы чтения, добавления.

Answer 1

Возможно, у вас создается не копия объекта вот здесь:

baseImg = resultImg;

а ссылка на объект, после чего baseImg становится псевдонимом для resultImg, и в памяти не сохраняется предыдущее состояние, к которому вы хотите откатиться.

READ ALSO
Создать дополнение к браузеру Chrome Android

Создать дополнение к браузеру Chrome Android

Можно ли только для себя создать дополнение к браузеру Chrome Android? Что для этого нужно? Полностью декомпилировать приложение? Читал статью,...

167
Кодировка MySQL Linux

Кодировка MySQL Linux

Есть приложение на Java, для работы с MySQL используется HibernateПриложение отправляет String запрос на русском в БД и получает String ответ

218
Остановить цикл while

Остановить цикл while

Подскажите пожалуйста, не могу понять как остановить цикл while, создал массив из 5 ячеек с Random и теперь если меняю в ячейке 2 значение на 1, то цикл...

186
Java.Android.Удаление группы и элемента с ExpandableListView

Java.Android.Удаление группы и элемента с ExpandableListView

При нажатии на кнопку , нужно что бы удалялась группа со всем его элементами с ExpandableListViewКак это реализовать ?

224