Bei der Miniaturbildgenerierung mit ImageMagick werden nicht die richtigen Farben wiedergegeben

Bei der Miniaturbildgenerierung mit ImageMagick werden nicht die richtigen Farben wiedergegeben

Erstellen von Miniaturansichten von PDFs mit ImageMagickManchmalrendert falsche Farben. Wir verwenden eine alte Version von Imagemagick (6.5.7-8, das ist die Version, die auf den Heroku-Servern installiert ist). Hier ist der Befehl, den wir derzeit verwenden:

convert \
  -size "725x1200>" \
  -colorspace RGB \
  -flatten \
  -density 300 \
  -quality 100 \
   input.pdf \
   output.jpg

Ich habe versucht, verschiedene Farbräume wie sRGB, YIQ usw. zu verwenden, aber keiner davon gibt die Farbe richtig wieder.

Die lokale Verwendung von imagemagick-6.7.7-6 funktioniert, also habe ich versucht, den Befehl „convert“ in meinem Anwendungsverzeichnis /bin zu bündeln. Der Befehl funktioniert, aber das Ergebnis ist immer noch falsch. Daher scheint das Problem entweder von einem anderen Imagemagick-Befehl zu stammen, der von „convert“ verwendet wird, oder von einer anderen Bibliothek.

Hier ist ein Beispiel der Ausgaben:

  • Richtige Ausgabe: links
  • Falsche Ausgabe: rechts
    Korrekte Ausgabe Falsche Ausgabe

Seltsamerweise ist die Ausgabe bei einigen Seiten derselben PDF-Datei immer korrekt. Irgendeine Idee, welche Bibliothek oder welcher Befehl das Problem sein könnte oder ob es einen geeigneten Satz von Optionen gibt, die man an ImageMagick übergeben kann, damit es immer richtig ist?

Antwort1

Nach einigen weiteren Untersuchungen scheint das Problem bei Ghostscript zu liegen, wo die -dUseCIEColorOption fehlt. Und soweit ich im Internet herausgefunden habe, ist es nicht möglich, Parameter über Imagemagick an Ghostscript zu übergeben. Was jedoch möglich ist, ist, die beiden Befehle zusammen mit einer Pipe aufzurufen:https://stackoverflow.com/questions/653380/konvertieren-eines-pdf-in-png

Mein konkreter Anwendungsfall

Dies ist etwas spezifischer für meinen Anwendungsfall, aber ich dachte, es könnte jemanden interessieren. Da wir in unserer Rails-Anwendung Miniaturansichten über Paperclip generieren, habe ich einen neuen Paperclip-Prozessor erstellt, der sich um die Konvertierung von PDF in JPG kümmert, und dann übernimmt Imagemagick die übliche Größenanpassung. Mein Code mit einem Beispiel hier:https://gist.github.com/3059321

verwandte Informationen