最佳图像缩放库

2022-09-04 01:51:04

我搜索并找到了一些Java的图像缩放库。但不确定要选择哪一个。我需要从服务器上传的图像生成缩略图。

如果你能分辨出哪一个是好的和坏的,那就太好了。

我拥有的列表是:

  • 马吉克
  • im4java
  • 缩略图器
  • java-image-scaling
  • WA4

答案 1

对于我的简单需求,缩略图器是完美的。小自由;流畅,干净,记录良好的API。

在我的情况下,它只是依赖性和:"net.coobird" % "thumbnailator" % "0.4.8"

//..
Thumbnails.of(originalFile)
      .size(300, 300) 
      .toFile(thumbnailFile)
//.. 

完成。基本上,它是Java 2D API之上的友好包装器。对特定(缩略图)需求有用;没有学习曲线。


除非你真的需要对图像进行一些繁重的工作,否则我会谨慎地依赖外部二进制文件(ImageMagick和像JMagick这样的包装器),这会给设置增加复杂性和移动部件。特别是如果你的堆栈是像我一样的东西:在Heroku上运行的Scala/Java应用程序。有这样的东西,是的,但是与应用程序捆绑在一起的简单依赖项是无限干净的。heroku-buildpack-imagemagick-cedar-14


答案 2

如果您需要高质量的缩略图,则生成缩略图的Java API还不够好。

要生成高质量的缩略图,请使用与您列出的框架类似的框架。我尝试过ImgScalr(https://github.com/thebuzzmedia/imgscalr)和缩略图器。使用我的微基准测试(不能真正用于通用结论),缩略图器更快 - 虽然不是很多,而且更容易 - 特别是在生成具有透明度的缩略图时。

我也尝试了JMagick,但在编译代码并进行设置时遇到了问题。也有点担心以后遇到一个问题,其基本代码是用我完全不理解的语言编写的 - C。

您可能还会发现这里的讨论很有用:如何使用Java调整图像大小?


推荐