Фильтр изображений на ROI с Java2D - PullRequest
0 голосов
/ 14 февраля 2011

Я хочу применить некоторые фильтры [фильтр изображений] к области интереса, которую выбрал пользователь.

Мне нужен API для получения пикселей этой области [многоугольник или прямоугольник] и применить

filter.any Предложите для этой работы?

1 Ответ

0 голосов
/ 16 апреля 2011

По сути, вам нужно:

  1. Создать BufferedImage и связать его с графическим объектом
  2. Установить область отсечения
  3. Нарисовать эту графикуobject
  4. Применение фильтра к объекту BufferedImage

В псевдокоде:

private BufferedImage bufferedImage = new BufferedImage()
private Graphics2D graphics = bufferedImage.createGraphics()

void paint(Graphics2D input) {
    graphics.clip(selectionArea.getShape())
    upperCanvas.paint(graphics)

    BufferedImageOp op
    bufferedImage = op.filter(bufferedImage, new BufferedImage())

    input.drawImage(bufferedImage)
}

Для применения фильтра см. java.awt.image

Как видите, это можно сделать в java2d, но API довольно сложный.Если вам интересно, я могу предложить pulpcore в качестве замены каркаса.Он включает в себя несколько предопределенных фильтров и однострочный API для их применения.Смотрите демо .Также включает класс Java2DSprite для удобного переноса между pulpcore и java2d.

...