
imagemagick을 사용하여 PDF 축소판 생성때때로잘못된 색상을 렌더링합니다. 우리는 이전 버전의 imagemagick(6.5.7-8, heroku 서버에 설치된 버전)을 사용하고 있습니다. 현재 사용 중인 명령은 다음과 같습니다.
convert \
-size "725x1200>" \
-colorspace RGB \
-flatten \
-density 300 \
-quality 100 \
input.pdf \
output.jpg
sRGB, YIQ 등과 같은 다른 색상 공간을 사용해 보았지만 그 중 어느 것도 색상을 올바르게 렌더링하지 못했습니다.
imagemagick-6.7.7-6을 로컬에서 사용하면 작동하므로 내 응용 프로그램/bin 디렉터리에 'convert' 명령을 묶으려고 시도했지만 명령은 작동하지만 결과가 여전히 잘못되어 문제가 다른 imagemagick에서 발생한 것 같습니다. 'convert' 또는 다른 라이브러리에서 사용되는 명령입니다.
다음은 출력의 예입니다.
- 올바른 출력: 왼쪽
- 잘못된 출력: 오른쪽
이상하게도 동일한 PDF의 일부 페이지에서는 출력이 항상 정확합니다. 어떤 라이브러리나 명령이 문제가 될 수 있는지, 아니면 항상 올바르게 작동하도록 imagemagick에 전달할 적절한 옵션 세트가 있는지 알고 계시나요?
답변1
좀 더 조사한 결과 옵션이 누락된 고스트스크립트에서 문제가 발생한 것으로 나타났습니다 -dUseCIEColor
. 그리고 제가 웹에서 수집한 내용에 따르면 imagemagick을 통해 고스트스크립트에 매개변수를 전달할 수 없습니다. 하지만 가능한 것은 파이프와 함께 두 명령을 호출하는 것입니다.https://stackoverflow.com/questions/653380/converting-a-pdf-to-png
내 구체적인 사용 사례
이것은 내 사용 사례에 좀 더 구체적이지만 누군가 관심을 가질 것이라고 생각했습니다. 레일 애플리케이션에서 Paperclip을 통해 썸네일을 생성할 때 pdf에서 jpg로의 변환을 처리하기 위해 새로운 클립 프로세서를 만든 다음 imagemagick이 일반적인 크기 조정 작업을 대신 수행합니다. 여기에 예제가 있는 내 코드는 다음과 같습니다.https://gist.github.com/3059321