apache-nifi - 在 NiFi 中如何裁剪图像?
问题描述
我有 Kafka 消息发送人群中的人的脸。我想根据提供的坐标裁剪此图像的特定部分。我怎样才能在 NiFi 中做到这一点?我是否需要在 Windows NT 和 linux 中使用以下命令:mogrify -crop {Width}x{Height}+{X}+{Y} +repage image.png?
使用 - ExecuteStreamCommand 处理器执行此命令?
我参考:命令行批量图片裁剪工具
解决方案
您可以使用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
推荐阅读
- laravel - 如何使用 Laravel 中的表达式将秒数放入 Cron 计划中?
- flutter - 将快照数据传输到另一个小部件
- php - 准备好的语句不起作用且未显示错误
- spring-boot - OpenAPI 和 spring-doc 没有在控制器类中找到所有映射
- python - 如果在 Python 3 中等于 x,则流式传输用户浏览器导航和重定向
- css - :root 选择器在 Angular 组件中不起作用
- javascript - 如何在打字稿中重新排序数组中的对象?
- r - 如何更改ggplot2中的图例样式?
- angular - '未在电子中运行,为此浏览器生成随机 UUID:60402a0e-a60b-431c-9680-ed6632ffc141。
- edi.net - 具有相同名称的多个段 - [EdiCondition] 不起作用