2012-06-07 20 views
22

Mam następujący:ImageMagick PDF do JPG czasami skutkuje czarnym tle

ghostscript-fonts-5.50-24 
ImageMagick-6.7.2-1 
ghostscript-9.02-1 

którego używam do stworzenia serii JPG dla każdej strony za pomocą:

convert -density 175 -colorspace sRGB test.pdf -resize 50% -quality 95 test.jpg 

Gdy uruchomię to na moja maszyna z Windows wszystko wydaje się działać dobrze, ale na naszym serwerze Linux dostajemy czarny problem tła.

Powstały plik JPG ma czarne tło, które powoduje, że obraz jest nieczytelny, brakuje go lub czy jest coś, co powinienem poprawić?

Byłem przez całe dni w Google, ale każda sugestia nie działa dla mnie.

Każda pomoc jest mile widziane, z góry dzięki :)

EDIT

prostu zauważyłem to wyjście podczas konwersji jednym z plików PDF, które produkuje czarnym tle:

**** Warning: Fonts with Subtype = /TrueType should be embedded. 
      The following fonts were not embedded: 
        Arial 
        Arial,Bold 
        Arial,BoldItalic 
**** This file had errors that were repaired or ignored. 
**** The file was produced by: 
**** >>>> Microsoft« Word 2010 <<<< 
**** Please notify the author of the software that produced this 
**** file that it does not conform to Adobe's published PDF 
**** specification. 

ten Wygląda na to, że jest powiązany, ale ponieważ nie mamy kontroli nad tym, jak pliki PDF są tworzone, potrzebujemy jakiegoś sposobu naprawienia tego serwera.

Dzięki ponownie

+2

_Please powiadomić autora software_ - heh, powodzenia że ';-)'. – halfer

+0

Zastanawiam się, czy ustawienie tu opcji '-background' color? Może musisz ustawić go na biały? – halfer

+0

Udało mi się przekonwertować to działanie, konwertując na format PNG zamiast JPG, ponieważ obsługują one przezroczystość. Dzięki za pomoc – jhdevuk

Odpowiedz

6

Proste fix do tego problemu jest użycie formatu obrazu, który obsługuje przezroczystość, takie jak PNG.

Więc:

convert -density 175 -colorspace sRGB test.pdf -resize 50% -quality 95 test.png 

Problem rozwiązany :)

+6

Po prostu żałuję, że nie możemy wymyślić, jak sprawić, by działał z jpg ... – rogerdpack

+0

Co powiesz na -alpha off? – Nigralbus

+0

@rogerdpack, spróbuj http://tinypng.org/ lub [Improved pngquant] (https://github.com/pornel/improved-pngquant). Wiesz, w jaki sposób możesz zapisać PNG jako indeksowany kolorowy obraz i wygląda on jak GIF? Okazuje się, że możesz wykonać indeksowaną paletę kolorów * i * zachować przezroczystość alfa. Rezultatem jest bardzo skompresowany plik PNG, który wygląda niemal identycznie jak oryginał. [JPEG 2000] (http://en.wikipedia.org/wiki/JPEG_2000) miał mieć obsługę przezroczystości alfa dla plików JPEG, ale obsługuje format plików, który nigdy nie zyskał trakcji w przeglądarkach internetowych. – thirdender

39

Ran w tym jednym dzisiaj znaleźć to:

http://www.wizards-toolkit.org/discourse-server/viewtopic.php?f=3&t=20234

podstawie, że powinny one wszystkie prace:

  • -flatten
  • -alpha flatten
  • -alpha remove

obecnie używam poniżej dla mojego konkretnego przypadku, który działa świetnie:

convert -thumbnail "1280x800>" -density 300 -background white -alpha remove in.pdf out.jpg 
+0

Próbowałem ich, wszystkie działają. –

+3

Jeśli chcesz podzielić wielostronicowy plik PDF na kilka plików JPEG na stronę, '-flatten' nie zadziała, ponieważ spowoduje zacieru wszystkie strony w jeden obraz. '-alpha flatten' lub' -alpha remove' jest drogą do zrobienia. – florian

+1

Dla języka C# można użyć: image.Alpha (AlphaOption.Remove); – Flappy

Powiązane problemy