3

我的用例非常简单,我认为它与许多其他开发人员共享。

我想:

 1. Load an image
 2. Read EXIF Orientation details (If available)
 3. Rotate (90, 180, 270) degrees
 4. Resize and store images.

我尝试浏览论坛,然后尝试:

Sanselan:阅读EXIF,但不是JPG图像。此外,commons-imaging下载链接都已损坏。

Java ImageIO/Graphics2D:可以旋转/重新调整大小(不是一个衬里,但可以理解),尽管如建议的那样,旋转时确实会降低质量

*但不读取所有JPG图像(抛出CMMException一些jpg文件)

其余的要么太旧且不再维护,根本没有文档,要么我错过了“好”的文档。

谁能推荐一个支持这几个“简单”用例的库?

*Sanselan用来读书EXIF就好了。Read/Rotate/Re-size (JPGs)是我的主要问题

4

3 回答 3

4

Thumbnailator是一个简单的 Java 库,它没有外部依赖项,可以 (a) 加载图像,(b) 读取 Exif 元数据并自动旋转图像,(c) 调整大小和 (d) 将图像存储在一个语句中:

Thumbnails.of("path/to/image")
    .size(320, 240)
    .toFile("path/to/thumbnail");

以上将:

  • 打开图片
  • 调整它的大小,使其适合 320 像素 x 240 像素的区域,同时
  • 保持原始图像的纵横比,以及
  • 根据 Exif 元数据正确定位图像,以及
  • 将其存储到新图像

如果希望执行额外的旋转,rotate也可以使用一种方法。

免责声明:我是 Thumbnailator 的维护者。

于 2013-06-13T13:42:52.137 回答
2

如果这是您唯一需要做的事情,可能有点过头了,但OpenCV是一个出色的图像处理库。它带有Java 绑定,并且在 BSD 许可下。

我说这对于像这样的简单用例来说是一种矫枉过正,仅仅是因为它可以做更多的事情。多年来,它始终是我的首选武器,仅仅是因为它绑定了多种语言,几乎可以在任何地方移植,甚至现在还支持 GPU :)。

已经有一些问题可以准确地回答你想要的我的想法。看这里的例子

希望这可以帮助

于 2013-06-13T13:06:12.030 回答
0

您最好使用 java 2D 库本身。

喜欢 :

paint(Graphics g)
Graphics g2= (Graphics)g
g2.draw();
g2.rotate(give parameters)
于 2013-06-13T12:04:22.220 回答