当前位置: 首页 > 面试题库 >

什么是最好的Java图像处理库/方法?

柳弘方
2023-03-14
问题内容

什么是最好的Java图像处理库/方法?[关闭]我同时使用JAI媒体API和ImageMagick吗?

ImageMagick存在一些可伸缩性问题,基于JNI的JMagick也没有吸引力。与ImageMagick相比,JAI执行大小调整操作时的质量结果较差。

有谁知道过任何出色的开源或商业工具,它们都是本机Java并可以提供高质量的结果?


问题答案:

我知道这个问题已经很老了,但是随着新软件的问世,它确实有助于获得一些新的项目链接,这些链接可能对人们很有趣。

imgscalr是纯Java图像大小调整(以及简单的操作,如填充,裁剪,旋转,变亮/变暗等),使用起来非常简单-单个类由一组简单的图形操作组成,这些操作均定义为静态方法,你传递图像并返回结果。

使用该库的最基本示例如下所示:

BufferedImage thumbnail = Scalr.resize(image, 150);

使用一些质量调整和类似方法生成图像缩略图的更典型用法如下所示:

import static org.imgscalr.Scalr.*;

public static BufferedImage createThumbnail(BufferedImage img) {
    // Create quickly, then smooth and brighten it.
    img = resize(img, Method.SPEED, 125, OP_ANTIALIAS, OP_BRIGHTER);

    // Let's add a little border before we return result.
    return pad(img, 4);
}

所有图像处理操作都使用原始Java2D管道(在主要平台上已通过硬件加速),不会像代码中的库争用那样引入通过JNI进行调用的麻烦。

imgscalr也已在许多地方大规模生产中使用-包含AsyncScalr类使其成为任何服务器端图像处理的理想选择。

可以使用最高的ULTRA_QUALITY模式对图像质量进行大量调整,以在速度和质量之间进行权衡,从而提供比GIMP Lancoz3实现更好的缩放结果。



 类似资料:
  • 我刚刚开发了一个Android应用程序(MINSDKVersion23/TargetSDKVersion29),它可以连接到BluetoothLE设备以定期获取数据。 现在,在MainActivity(不是第一个活动)中,我执行以下注册BroadcastReciever的操作: 当设备连接/发现/datareCieved时执行的所有回调都在StatusActivity中,而不是在BleServic

  • 问题内容: 我有一个用Java编写的Web应用程序(Spring,Hibernate / JPA,Struts2),用户可以在其中上传图像并将其存储在文件系统中。我想缩放这些图像,以使它们具有一致的大小,以便在网站上显示。哪些库或内置函数将提供最佳结果?在做出决定时,我将考虑以下标准: 免费/开源(基本) 易于实施 结果质量 性能 可执行文件的大小 问题答案: 看一下Java Image I /

  • 问题内容: 为什么没有更多的Java开源易用图表库?这个领域唯一成功的开源项目似乎是jfreechart,它甚至没有任何文档或示例。 问题答案: 有Charts4j,它是一个图表API。它使开发人员可以通过直观,直观的Java API 以编程方式创建Google Chart API中 可用的图表。 免责声明:我写了chart4j。我们将在接下来的几周内发布另一个主要版本。

  • 问题内容: 我有一个方法可以执行一些超时任务。我使用ExecutorServer.submit()获取Future对象,然后使用超时调用future.get()。这工作正常,但是我的问题是处理可能由我的任务引发的检查异常的最佳方法。以下代码可以正常工作,并保留检查的异常,但是如果方法签名中的检查的异常列表发生更改,则显得非常笨拙且容易中断。 对于如何解决这个问题,有任何的建议吗?我需要以Java

  • 问题内容: 哪个AJAX库最适合Django,为什么? 寻找一个包含大量教程,书籍和详细文档的数据库。 哪一个是最容易使用的?哪一个处于早期开发阶段,但对未来显示出巨大的希望? 问候, 克里斯 问题答案: 我强烈推荐jQuery。有一些有关如何实现它的教程。 http://lethain.com/entry/2007/dec/11/two-faced-django-part-5-jquery- a

  • OCR应用前的图像清洗 如何提高Tesseract OCR的准确性? 什么是正确的预处理步骤,我应该遵循改善图像捕捉相机转换为文字使用OCR在Android? 如何确定设备上有文档或卡片? 如何确定卡片的所有有效区域都是完全可见的? 我能想到一些潜在的有用线索: 运动 特性点(很多很多选择,但如何正确使用它们) 当内部相机被卡片或文档压缩时,强度级别会发生显著变化。 对于第一个问题,难点是动态背景