是否有任何好的 Scala 或 Java 库用于图像处理?对于简单的任务,例如与其他一些图像组合然后生成拇指?
5 回答
看看https://github.com/sksamuel/scrimage(免责声明:我是作者)
这是一个开源的 Scala 图像库,它本质上将 java.awt 图像操作包装在一个更好的 API 中。
你问如何生成缩略图,你会做类似的事情。
val in = ...// some input stream
val out = ... // some output stream
Image(in).scale(300,400).write(out, Png)
您可以更改缩放方法(默认为双三次)和输出格式。
它们都有点老派,也许不方便,但 java.awt、java.awt.image 和 javax.imageio 拥有混合和重新缩放图像所需的一切。您可以在此处找到一些混合示例代码,例如
http://www.curious-creature.org/2006/09/20/new-blendings-modes-for-java2d/
您可以找到一些重新缩放和生成图像字节的示例,例如这里
https://sourceforge.net/projects/ssim/?source=directory
可能有更新/更简单的解决方案,但这些确实有效。
这个开源库中还有很多不错的图像过滤器:
它不是 Scala 特有的,但ImgLib2是一个功能齐全的 Java 图像处理库。它面向科学/低级使用,因此它可能不像您想要的那样简单,但它几乎可以肯定地管理您可能想要的任何东西。
由于问题是标记java-2d
您知道您可以使用任何 Java 库。一个快速的谷歌揭示了这个 SO 答案: