我正在使用一个使用ImageMagick转换实用程序将tiff转换为jpg的java应用程序。
我们的工作流程是先做tiff-> jpg;创建缓冲的img obj以获取尺寸,然后缩放新尺寸,然后再次运行转换以使用新尺寸和一些其他选项调整大小。
这绝对适用于绝大部分时间,但在某些情况下我会收到一些tiff警告,虽然img转换最终成功,但转换会创建一些有问题的临时图像。以下是命令行中的内容:
>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 util,因为我们发现JMagick非常不可靠。如果有人成功地使用了它,那么有兴趣听听有关如何进行操作的任何想法。
谢谢! bp的
答案 0 :(得分:1)
我根本不是java专家,但是遇到了imagemagick的多个图像问题。这是由于包含图层的tiff文件。 imagemagick将输出tiff中的每一层。 获得一个特定的图层,只有1 ...
转换image.tif [0] image.jpg
现在这可能会影响质量。您可能希望转换两个并为每个层制作,将它们组合为0-先1秒。 从我发现的是,第一个之后的层虽然分辨率较低。