В NiFi как обрезать изображение? - PullRequest
0 голосов
/ 08 января 2019

У меня есть сообщения Кафки, отправляющие лицо человека в толпе. Я хочу обрезать определенную часть этого изображения на основе предоставленных координат. Как я могу сделать это в NiFi? Нужно ли использовать imagemagick в Windows NT и в Linux следующую команду: mogrify -crop {Width} x {Высота} + {X} + {Y} + repage image.png?

Выполнить эту команду, используя процессор ExecuteStreamCommand?

Я имею в виду: Инструмент обрезки пакетных изображений командной строки

1 Ответ

0 голосов
/ 08 января 2019

Вы можете использовать ExecuteGroovyScript процессор со следующим кодом:

import java.awt.image.BufferedImage
import javax.imageio.ImageIO


def ff = session.get()
if(!ff)return

ff.write{rawIn, rawOut->
    BufferedImage img = ImageIO.read(rawIn) //read image from flowfile input stream
    def x=100,y=200,endX=800,endY=600
    img = img.getSubimage(x, y, endX, endY) //crop
    ImageIO.write(img, "png", rawOut)       //write transformed image into flowfile as PNG
}

REL_SUCCESS << ff //transfer to success
...