1 2 3 4
- 图片 1是 ImageMagick 显示的原始主文件
display
。它显示为负片,但不应该如此。使用其他工具显示时,这是正常的。 - 图片 2是使用“convert main.jpg footer.jpg -append output.jpg”将图像 4 附加到图像 1 中。主要部分仍为负数,但页脚正常
- 图片 3与以下文件相同图片 2,但与 Windows Preview 中显示的一样(除了 IM 之外,其他版本都一样
display
)。主图像正常,但页脚为负数。 - 图片 4是所有实用程序中可自行正常显示的页脚文件。
我曾尝试做过:
convert main.jpg -negate footer.jpg -append -negate output.jpg
但这使得页脚几乎完全变黑(但在 IM 中显示正确display
!)。它还有一个缺点,就是它无法对本来就正确的图像执行正确的操作。
问题是我有一大批文件需要处理,其中一些文件没有出现此问题。使用identify -verbose
,我发现一些有问题的文件似乎更有可能具有等于或接近图像几何尺寸的“分辨率”。具有高于或明显低于几何尺寸的“分辨率”的图像似乎不太可能出现此问题。
主图像均为 350x350 像素,页脚为 350x60。
identify -verbose
其他与可能有显著差异的差异如下:
Image: NORMAL.jpg Image: NEGATIVE.jpg
Format: JPEG Format: JPEG
Class: DirectClass Class: DirectClass
Geometry: 350x350+0+0 Geometry: 350x350+0+0
Resolution: 100x100 Resolution: 338.66x338.66
Print size: 3.5x3.5 Print size: 1.03348x1.03348
Units: Undefined Units: PixelsPerInch
Type: TrueColor Type: ColorSeparation
Endianess: Undefined Endianess: Undefined
Colorspace: RGB Colorspace: CMYK
Depth: 8-bit Depth: 8-bit
Channel depth: Channel depth:
red: 8-bit cyan: 8-bit
green: 8-bit magenta: 8-bit
blue: 8-bit yellow: 8-bit
black: 8-bit
我已经尝试在 Linux 中使用 IM 6.5.1-0 和 6.6.8-3 以及在 Windows 中使用 6.5.2-5。
我如何才能可靠地诊断出导致这种情况的原因并自动纠正?如何才能将这些图像批量添加,而无需进行大量手动干预?
对于这些小片段我深感抱歉,但这些都是受版权保护的图片。
答案1
事实证明,问题出在色彩空间上。我通过将其从 CMYK 转换为 RGB 解决了该问题。
identify -verbose *.{jpg,JPG} |
grep -E '^(Image:|[[:blank:]]+Colorspace: CMYK)'|
grep -Po 'Image: \K.*' |
xargs -I % convert % -colorspace RGB footer.jpg -append combined/%