我的用例非常简单,我认为与许多其他开发人员共享。
我想:
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)
是我的主要问题
答案 0 :(得分:3)
Thumbnailator是一个简单的Java库,没有外部依赖关系,可以(a)加载图像,(b)读取Exif元数据并自动旋转图像,(c)调整大小和(d)存储图像在一个单一的陈述中:
Thumbnails.of("path/to/image")
.size(320, 240)
.toFile("path/to/thumbnail");
以上将:
如果想要进行额外的旋转,也可以使用rotate
方法。
免责声明:我是Thumbnailator的维护者。
答案 1 :(得分:1)
如果这是你唯一需要做的事情,那么可能会有太大的影响,但 OpenCV 是一个出色的图像处理库。 它附带Java bindings,并且已获得BSD许可。
我说这对于像这样的简单用例来说太过分了,仅仅因为它可以so much more。多年来它总是我的首选武器,仅仅因为它具有许多语言的绑定,几乎可以随处携带,甚至现在都支持GPU :)。
已经有一些问题可以完全回答你的想法。查看 here 以获取示例
希望这有帮助
答案 2 :(得分:0)
您最好使用java 2D库本身。
喜欢:
paint(Graphics g)
Graphics g2= (Graphics)g
g2.draw();
g2.rotate(give parameters)