ImageMagick이 일부 이미지를 부정적으로 잘못 표시합니다


2

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

  1         2      3      4
  • 이미지 1 은 ImageMagick에 의해 표시되는 원본 주 파일 display입니다. 음수로 표시되지만 그렇게해서는 안됩니다. 다른 도구를 사용하여 표시되면 정상입니다.
  • 이미지 2 는`convert main.jpg footer.jpg -append output.jpg를 사용하여 이미지 1에 추가 된 이미지 4입니다. 주요 부분은 여전히 ​​음수이지만 바닥 글은 정상입니다
  • 이미지 3이미지 2 와 동일한 파일 이지만 Windows 미리보기에 표시됩니다 (IM 이외의 다른 파일 display). 기본 이미지는 정상이지만 바닥 글은 음수입니다.
  • 이미지 4 는 모든 유틸리티에서 자체적으로 정상적으로 표시되는 바닥 글 파일입니다.

나는 노력했다 :

convert main.jpg -negate footer.jpg  -append -negate output.jpg

그러나 바닥 글이 거의 완전히 검은 색으로 표시됩니다 (그러나 IM에서는 올바르게 표시됩니다 display!). 또한 올바른 이미지부터 시작하기에 적합하지 않다는 단점이 있습니다.

문제는 처리 할 파일이 많고 일부는이 문제를 나타내지 않는다는 것입니다. 를 사용 identify -verbose하여 문제가있는 파일 중 일부가 이미지의 Geometry 치수와 같거나 근처에있는 "Resolution"을 갖는 것으로 보입니다. "해상도"가 Geometry보다 높거나 상당히 낮은 이미지는이 문제가 발생하기 쉽지 않습니다.

기본 이미지는 모두 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을 사용하고 Windows에서 6.5.2-5를 사용하여 이것을 시도했다.

이 원인을 확실하게 진단하고 자동으로 수정하려면 어떻게해야합니까? 많은 수동 개입없이이 이미지들을 일괄 적으로 추가하려면 어떻게해야합니까?

작은 스 니펫에 대해 사과하지만 저작권이있는 이미지입니다.

답변:


2

색 공간이 문제라는 것이 밝혀졌습니다. 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/%
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.