ImageMagick неправильно показывает некоторые изображения как негативы

1383
Dennis Williamson

enter image description here enter image description here enter image description here enter image description here

 1 2 3 4 
  • Изображение 1 - это оригинальный основной файл, отображаемый ImageMagick display. Это проявляется как негатив, но не должно быть. При отображении с использованием других инструментов это нормально.
  • Изображение 2 - это изображение 4, добавленное к изображению 1 с помощью `convert main.jpg footer.jpg -append output.jpg. Основная часть все еще отрицательная, но нижний колонтитул нормальный
  • Изображение 3 - это тот же файл, что и изображение 2, но оно отображается в Windows Preview (оно одинаково для всех, кроме мгновенных сообщений 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 

Я пробовал это с использованием IM 6.5.1-0 и 6.6.8-3 в Linux и 6.5.2-5 в Windows.

Как я могу надежно диагностировать причину и автоматически ее исправить? Как я могу добавить эти изображения в пакете, не делая много ручного вмешательства?

Я прошу прощения за небольшие фрагменты, но это авторские изображения.

1

1 ответ на вопрос

1
Dennis Williamson

Оказывается, что цветовое пространство было проблемой. Я решил проблему, преобразовав его из CMYK в RGB.

identify -verbose *. | grep -E '^(Image:|[[:blank:]]+Colorspace: CMYK)'| grep -Po 'Image: \K.*' | xargs -I % convert % -colorspace RGB footer.jpg -append combined/% 

Похожие вопросы