【问题标题】:Best Image Scaling Library最佳图像缩放库
【发布时间】:2023-03-10 21:20:02
【问题描述】:

我已经搜索并找到了一些用于 Java 的图像缩放库。但不确定要和哪一个一起去。我需要从服务器上传的图片生成缩略图。

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

我的清单是:

  • JMagick
  • im4java
  • 缩略图器
  • java-image-scaling
  • 贾伊

【问题讨论】:

    标签: java image-processing image-resizing


    【解决方案1】:

    对于我的简单需求,Thumbnailator 非常完美。小库;流畅、干净、文档齐全的 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) 和 Thumbnailator。 通过我的微基准测试(不能真正用于一般目的的结论)Thumbnailator 更快 - 虽然不是很多,而且更容易 - 特别是在生成具有透明度的缩略图时。

      我也尝试了 JMagick,但在编译和设置代码时遇到了问题。也有点担心以后会遇到一个框架的问题,该框架的基本代码是用我根本不懂的语言编写的 - C。

      您可能还会发现这里的讨论很有用:How can I resize an image using Java?

      【讨论】:

        【解决方案3】:

        在我的私人项目中,我不使用任何特定的库,为 Java 提供的功能为我提供了不错的结果。如果你只想做图片缩放,那么一个完整的图片处理库就太重了。

        我使用http://www.mkyong.com/java/how-to-resize-an-image-in-java/中给出的代码sn-ps,效果很好。

        【讨论】:

          猜你喜欢
          • 2019-11-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-31
          • 2010-10-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多