1

我正在开发一个使用 ImageMagick 转换实用程序将 tiff 转换为 jpg 的 java 应用程序。

我们的工作流程是先做tiff->jpg;创建缓冲的 img obj 以获取尺寸,然后缩放新尺寸,然后再次运行 convert 以使用新尺寸和其他一些选项调整大小。

这在绝大多数情况下都能正常工作,但在某些情况下,我会收到一些 tiff 警告,虽然 img 转换最终成功,但 convert 会创建一些有问题的临时图像。这是它在命令行上的样子:

>convert testImg.tif test.jpg
convert.exe: Unknown field with tag 317 (0x13d) encountered. `TIFFReadDirectory @ warning/tiff.c/TIFFWarnings/824.
convert.exe: Unknown field with tag 34391 (0x8657) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/824.
convert.exe: Unknown field with tag 34392 (0x8658) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/824.
convert.exe: testImg.tif: Null count for "Tag 34391" (type 1, writecount -3, pascount 1). `_TIFFVSetField' @ error/tiff.c/TIFFErrors/562.
convert.exe: Unknown field with tag 317 (0x13d) encountered. `TIFFReadDirectory @ warning/tiff.c/TIFFWarnings/824.

开始时

testImg.tif

输出是

test-0.jpg
test-1.jpg

我们的解决方法是先转换 tif->gif 然后 gif->jpg ,这似乎可以解决它,但想知道是否有人遇到过这个特殊问题。

顺便说一句,我们使用 convert 工具是因为我们发现 JMagick 非常不可靠。如果有人成功使用它,将有兴趣听到有关如何提供信息的任何想法。

谢谢!bp

4

1 回答 1

1

我根本不是 java 专家,但遇到了 imagemagick 的多图像问题。这是由于 tiff 文件包含图层。imagemagick 将输出 tiff 中的每一层。要获得一个特定的层,只有 1...

转换 image.tif[0] image.jpg

现在这可能会影响质量。您可能想要转换两者,并且对于制作的每一层,将它们组合为 0-first 1 秒。根据我的发现,第一个图层之后的分辨率较低。

于 2013-10-29T21:13:40.093 回答