вырезать часть изображения из существующего изображения в Java - PullRequest
7 голосов
/ 07 июня 2010

В настоящее время работая на Java, я хотел бы иметь возможность выбрать часть изображения, используя координаты указателя мыши. Затем выделенную область необходимо вырезать из существующего изображения и использовать для создания нового отдельного изображения.

Так же, как несколько указателей о том, как это сделать. Спасибо.

Ответы [ 2 ]

10 голосов
/ 07 июня 2010

Если вы хотите, чтобы пользователь мог "щелкнуть и перетащить", чтобы выбрать прямоугольник, вам нужно реализовать MouseMotionListener. Взгляните на метод mouseDragged:

void mouseDragged(MouseEvent e)
Вызывается, когда кнопка мыши нажимается на компоненте, а затем перетаскивается.

Когда вам нужно получить изображение, вы просто используете

public BufferedImage getSubimage(int x, int y, int w, int h)
Возвращает вложенный образ, определенный указанной прямоугольной областью. Возвращенный BufferedImage использует тот же массив данных, что и исходное изображение.

Если вы хотите сохранить полученное изображение на диск, я предлагаю вам взглянуть на Сохранение сгенерированной графики в файл PNG или JPEG .

2 голосов
/ 07 июня 2010

Если вы просто хотите использовать полезный инструмент или посмотреть, как это делается в Java, попробуйте ImageJ .Если вы хотите написать свой собственный инструмент, взгляните на Работа с изображениями и Как написать слушатель мыши .Если у вас есть BufferedImage и нужные координаты, drawImage() выполнит большую часть того, что вы хотите.

...