Chcę utworzyć zdjęcie captcha za pomocą convert
ImageMagick.
I śledzę to , ale jest jakiś problem.
Wejście w mojej powłoce linux:
convert -background white -fill black -font FreeSerif-Bold -pointsize 36 label:'adfgh' ./test.png
Błąd jest następujący:
konwersja: brak autoryzacji
adfgh
@ error / constit.c / ReadImage / 453. konwersja: brak nazwy pliku obrazu./test.png
@ error / convert.c / ConvertImageCommand / 3015
My ImageMagick: Wersja: 6.7.2-7, instaluję go za pomocą yum install ImageMagick
.
Nie mam pojęcia. Wszelkie porady proszę?
imagemagick
imagemagick-convert
jianwei
źródło
źródło
policy.xml
. Opcje bezpieczeństwa mogą uniemożliwićlabel:
protokół.Odpowiedzi:
Korzystam z ImageMagick w php (v.7.1), aby pokroić plik PDF na obrazy.
Najpierw dostałem błędy takie jak:
Po kilku zmianach
/etc/ImageMagick-6/policy.xml
zaczynam dostawać błędy:Moja poprawka :
W pliku
/etc/ImageMagick-6/policy.xml
(lub/etc/ImageMagick/policy.xml
)linia komentarza
zmień linię
do
dodaj linię
Następnie uruchom ponownie serwer WWW (nginx, apache).
źródło
policy.xml
plik został ostatnio zaktualizowany 29 września, ale problemy pojawiają się dzisiaj. Używam serwera Ubuntu 14.04.5, ale ustaw automatyczną aktualizację. W dzienniku apt znalazłem informacje o tej aktualizacji:imagemagick-common:amd64 (6.7.7.10-6ubuntu3.12, 6.7.7.10-6ubuntu3.13),
Używam wielokrotnie
convert
polecenia ImageMagic do konwersji*.tif
plików*.pdf
pliki.Nie wiem dlaczego, ale dzisiaj zacząłem otrzymywać następujący błąd:
Po wydaniu polecenia:
Po przeczytaniu powyższych odpowiedzi dokonałem edycji pliku
/etc/ImageMagick-6/policy.xml
i zmieniłem linię:
do
a teraz wszystko działa dobrze.
Mam „ImageMagick 6.8.9-9 Q16 x86_64 2018-09-28” na „Ubuntu 16.04.5 LTS”.
źródło
convert
pliku PDF w wierszu polecenia .Jeśli nadal tu jesteś, próbujesz edytować obrazy, nad którymi masz pełną kontrolę, wiesz, że są bezpieczne i nie mogą być edytowane przez użytkowników.
Tam jest
/etc/ImageMagick/policy.xml
plik instalowany przez yum. Nie zezwala na prawie wszystko (dla bezpieczeństwa i dla ochrony twojego systemu przed przeciążeniem wywołaniami ImageMagick).Jeśli otrzymujesz
ReadImage
błąd jak wyżej, możesz zmienić linię na:co powinno rozwiązać problem.
Plik zawiera sporo dokumentacji, więc powinieneś to przeczytać. Na przykład, jeśli potrzebujesz więcej uprawnień, możesz je połączyć w następujący sposób:
... co jest lepsze niż usunięcie wszystkich kontroli uprawnień (tj. usunięcie lub skomentowanie linii).
źródło
poppler
jest alternatywą dla GhostScript (któryconvert
polega na rasteryzacji stron PDF do obrazów)Jeśli po instalacji ktoś musi to zrobić za pomocą jednego polecenia, uruchom to!
źródło
sed -i 's/\(<policy domain="coder" rights=\)"none" \(pattern="PDF" \/>\)/\1"read|write"\2/g' /etc/ImageMagick-6/policy.xml
sudo sed -i '/PDF/s/none/read|write/' /etc/ImageMagick-6/policy.xml
Odpowiedź z największą liczbą głosów (nie mam wystarczającej reputacji, aby dodać komentarz) sugeruje skomentowanie linii MVG, ale pamiętaj o tym:
I
Źródło
źródło
$convert --version Version: ImageMagick 6.7.7-10 2018-09-28 Q16 http://www.imagemagick.org
Po ostatniej aktualizacji mojego systemu Ubuntu 16.04 zacząłem również pojawiać się ten błąd podczas próby konwersji plików .ps w celu ich konwersji na pliki pdf.
Ta poprawka zadziałała dla mnie:
W biegu terminalowym:
To powinno otworzyć plik policy.xml w edytorze tekstu gedit. Jeśli nie, twoja magia obrazu może zostać zainstalowana w innym miejscu. Następnie zmień
do
dla linii PDF, EPS i PS w dolnej części pliku. Zapisz i wyjdź, a magia obrazu powinna znów działać.
źródło
Wystarczy usunąć plik /etc/ImageMagick/policy.xml.
źródło
policy-disabled.xml
. Myślę, że przywrócę go, dopóki niePo przeczytaniu kilku sugestii i połączeniu pomysłów, dla mnie konieczne były następujące zmiany w pliku /etc/ImageMagick-6/policy.xml:
... prawa = „brak” nie pomogło. ... wzór = „ETYKIETA” nie była konieczna. Chociaż nie pracuję z dużymi plikami png (tylko ~ 1 Mb), konieczne były również pewne zmiany limitów pamięci:
(zamiast 256Mib) i
(zamiast 128 MB)
źródło
Wystąpił ten błąd podczas próby konwersji pliku pdf do formatu jpg i rozwiązałem go przy użyciu tej metody: sudo vi /etc/ImageMagick*/policy.xml
zmiana:
domena strategii = prawa „kodera” = „brak” wzorzec = „PDF”
do:
domain domain = „coder” rights = „read | write” pattern = „PDF”
Źródło: http://realtechtalk.com/ImageMagick_Convert_PDF_Not_Authorized-2217-articles
źródło
Jeśli nie potrzebujesz obsługiwać plików rastrowych i plików PDF / PS / EPS za pomocą tego samego narzędzia, nie poluzuj zabezpieczeń ImageMagick.
Zamiast tego, zachowaj swoją głęboką obronę dla swoich aplikacji internetowych w nienaruszonym stanie, sprawdź, czy Ghostscript został załatany pod kątem wszystkich znanych
-dSAFER
luk, a następnie wywołaj go bezpośrednio.-dSAFER
rezygnuje ze starszej kompatybilności „Uruchom Postscript uzyska pełne pozwolenie na interakcję ze światem zewnętrznym jako tryb pełnego języka programowania”.-r300
ustawia pożądaną DPI na 300 (domyślnie 72)-sDEVICE
określa format wyjściowy ( inne opcje można znaleźć w sekcji Urządzenia instrukcji).-o
jest skrótem od-dBATCH -dNOPAUSE -sOutputFile=
Jeśli renderujesz pliki EPS, dodaj,
-dEPSCrop
aby nie dopasowywał wydruków do rozmiaru strony i nie służy-sDEVICE=pngalpha
do uzyskania przezroczystego tła.źródło
-r600 -dDownScaleFactor=4
tworzeniu pliku o rozdzielczości 150 dpi, ale z lepszym antyaliasingiem.Miałem również błąd
error/constitute.c/ReadImage/453
podczas próby konwersji eps na gif z magią obrazu. Wypróbowałem rozwiązanie zaproponowane przez sNICkerssss, ale nadal miałem błędy (choć różne od pierwszego) eerror/constitute.c/ReadImage/412
Rozwiązaniem problemu było umieszczenieread
innych wpisówźródło