我应该使用什么 Java 库来进行图像裁剪/信箱处理? [关闭]

2023-12-15

我正在寻找一个 Java 库来进行图像裁剪/调整大小。我本来计划使用jmagick,但自2009年以来它似乎就没有维护了。

这是最好用的库吗?有什么建议吗?!

Edit

我想做的一件事是能够填充图像以调整大小以及裁剪它。也就是说,如果我有一个 4x2 的图像,并且我想将其变成正方形,我想将其变成 4x4,每边都有黑色或白色填充。 这在图像处理中有名字吗?它是任何库附带的功能吗?


我维持缩略图器,一个 Java 缩略图生成库,它提供了通过易于使用的工具调整图像大小并进行一些简单的图像操作的方法流畅的API.

Thumbnailator 提供的功能之一是Canvas可以对生成的缩略图进行裁剪和填充(或信箱)的过滤器。

填充图像

例如,使用Canvas过滤器填充图像可以通过以下方式实现:

Thumbnails.of("path/to/image.jpg")
  .size(150, 150)
  .addFilter(new Canvas(150, 150, Positions.CENTER, Color.blue))
  .toFile("path/to/padded-image.jpg");

上述内容将:

  1. 拍摄原始图像并通过以下命令将其缩小到 150 x 150 以内size method.
  2. 然后,由指定的附加过滤步骤addFilter方法将添加蓝色填充(使用Color.blue) 得到尺寸为 150 x 150 的最终图像。
  3. 将生成的缩略图保存到path/to/padded-image.jpg.

在肖像图片上使用上述代码会产生以下结果:

padded image
(source: coobird.net)

裁剪图像

使用裁剪图像Canvas过滤可以通过以下方式实现:

Thumbnails.of("path/to/image.jpg")
  .size(150, 150)
  .addFilter(new Canvas(100, 100, Positions.TOP_RIGHT, true))
  .toFile("path/to/cropped-image.jpg");

上面的代码将:

  1. 拍摄原始图像并通过以下命令将其缩小到 150 x 150 以内size method.
  2. 然后,额外的过滤步骤将从调整大小的图像的右上角裁剪出 100 x 100 的区域。 (这true中存在的论点Canvas构造函数调用指示如果图像大于指定尺寸,则应裁剪图像。)
  3. 将生成的缩略图保存到path/to/cropped-image.jpg.

运行上述代码的示例如下:

cropped image
(source: coobird.net)


目前有一些功能请求要求使裁剪成为 Thumbnailator API 中更不可或缺的一部分,因此将来我计划添加一个crop方法应该减少调用的需要addFilter大多数情况下的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该使用什么 Java 库来进行图像裁剪/信箱处理? [关闭] 的相关文章

随机推荐

  • 无法加载DLL“sqlite3”:找不到指定的模块

    我很难让我的测试针对我的 SQLite 数据提供程序运行 我查看了建议的链接在 stackoverflow 上 但他们似乎都没有让我走上正确的道路 我已经下载了Windowssqlite3 dll 的预编译二进制文件 I ve copied
  • ADAL:W8.1 应用程序尝试注销用户

    我有一个概念验证 W8 1 app 它允许使用 ADAL 库通过 Azure Active Directory 对用户进行身份验证 我已经完成了允许用户登录并访问我的资源的部分 但是 它应该能够允许用户注销 并允许其他用户在同一设备上登录
  • JsonMappingException:找不到非具体 Map 类型的反序列化器

    String str commonClient authorizedRequestBuilder commonClient webTarget path apps get current version default appName ap
  • java.sql.SQLException:用户访问被拒绝

    我想创建一个可以从任何主机访问Mysql服务器的用户 I use create user email protected identified by abc123 and grant all privileges mydb to abc 但
  • 在 Apple WatchKit 中使用核心位置

    我目前正在开发苹果手表扩展 有人知道当前位置是由 iPhone 还是 Watch 本身提供的吗 我找不到任何关于此的信息 我需要画一个指南针指向手表所指向的位置 为了做你想做的事 你不需要 CoreLocation 你只需要一个磁力计 AF
  • 将旋转位图与拼贴图像匹配

    我的问题是我有一张详细街道地图的图像 在此地图上 可以存在以任意角度旋转的特定标志小图像 例如交通灯图标 也可以调整大小 我在位图中有这个小图像 如果在大拼贴图像中存在该位图的副本 旋转并可能调整大小 是否有任何算法或技术可以用来定位该位图
  • 如何在 Woocommerce 购物车页面添加订单备注字段?

    我想在 Woocommerce 购物车页面的 Woocommerce 购物车优惠券区域下添加注释字段 该字段应该类似于 Woocommerce 结帐页面的 订单注释 字段 客户可以在其中添加一些注释 到目前为止 我有这段代码指示我想要的位置
  • 展平 NumPy 数组列表?

    看来我有 NumPy 数组列表格式的数据 type np ndarray array 0 00353654 array 0 00353654 array 0 00353654 array 0 00353654 array 0 0035365
  • switch语句eclipse错误:case表达式必须是常量表达式

    我编写了一个程序 可以根据我输入的颜色输出一朵花 在 switch 语句中 我不断看到一条错误 指出 case 表达式必须是常量表达式 我不明白我哪里做错了 我还遇到了打印花的复数时态的问题 如果用户输入 2 或更高 这是代码 Scanne
  • ExtJS 4.0.7 scrollTo() 滚动但不移动滚动条滑块?

    我有一个树面板 正在尝试对某些位置进行动画滚动 我正在做这样的事情 myTreePanel getView getEl scrollTo top yCoord true animate 视图滚动到正确的位置 但滚动条中的 滑块 没有移动 有
  • 如何选择包含按钮的 QTableWidget 单元格

    我有一个关于 PyQt4 上的 QTableWidget 的问题 假设我有一个 QTableWidget 我想使用以下方法将事件连接到单元格单击 table cellClicked connect cellClick then 单元格点击函
  • Angular - 自定义元素不适用于 Firefox、Microsoft Edge 和 Internet Explorer

    我试过这个角度元素演示 我在本地下载 安装并构建了该演示 然后 使用以下代码
  • C 中的命名空间

    有没有办法 滥用 使用C预处理器来模拟命名空间C 我正在思考以下几点 define NAMESPACE name of ns some function some other function 这将被翻译为 name of ns some
  • 302s 和 urllib2 丢失 cookie

    我将 liburl2 与 Cookie Jar HTTP CookieProcessor 一起使用 试图模拟登录页面以自动上传 我已经看到了一些关于此的问题和答案 但没有解决我的问题 当我模拟以 302 重定向结束的登录时 我丢失了 coo
  • Inno Setup 中 AppData\LocalLow 的常量?

    目前可访问LocalLow我用这个 USERPROFILE AppData LocalLow 但我想知道 Inno Setup 中是否有一个常数 因为两者Roaming and Local有一个 没有常数AppData LocalLow 您
  • 动态调整导航 div 的大小以适应主要内容

    问候和你好我正在尝试构建一个 WordPress 网站 现在因为主 div 中的内容将具有不同的高度 每个页面我需要导航侧边栏拉伸到相同的高度 因此 通过一些 JavaScript tom foolery 我可以使用以下代码使侧边栏具有相同
  • 限制可以输入“文本区域”的文本量的最佳方法是什么?

    限制用户可以在网页上的 文本区域 字段中输入的文本量的最佳方法是什么 所讨论的应用程序是 ASP NET 但首选与平台无关的答案 我知道可能需要一定量的 JavaScript 才能完成此操作 因为如果可能的话 我不希望使用大量数据实际执行
  • SQL Server 左连接

    我正在尝试在一个查询中进行左连接 但似乎我在某个地方错了 table machines machineID FaNo Barcode RoutingCode Name table log logID lineBarcode machineB
  • 如何使用 WiX 创建事件日志源

    我正在为使用自定义事件日志源的网站创建安装程序 我希望基于 WiX 的安装程序在安装过程中创建该事件日志源 有谁知道使用 WiX 框架执行此操作的最佳方法 Wix 对创建事件日志源提供开箱即用的支持 假设您使用 Wix 3 您首先需要将对
  • 我应该使用什么 Java 库来进行图像裁剪/信箱处理? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一个 Java 库来进行图像裁剪 调整大小 我本来计划使用jmagick 但自2009年以来它似乎就没有维护了 这是最好用的库吗 有什么建