Ich möchte ein Captcha-Bild mit convert
ImageMagick erstellen .
Und ich folge dies , aber es gibt ein Problem.
Eingabe In meiner Linux-Shell:
convert -background white -fill black -font FreeSerif-Bold -pointsize 36 label:'adfgh' ./test.png
Der Fehler ist:
konvertieren: nicht autorisiert
adfgh
@ error / konstituieren.c / ReadImage / 453. convert: Es fehlt ein Bilddateiname./test.png
@ error / convert.c / ConvertImageCommand / 3015
Mein ImageMagick: Version: 6.7.2-7, ich installiere es mit yum install ImageMagick
.
Ich habe keine Ahnung. Irgendwelche Ratschläge bitte?
imagemagick
imagemagick-convert
Jianwei
quelle
quelle
policy.xml
. Sicherheitsoptionen können daslabel:
Protokoll verhindern .Antworten:
Ich benutze ImageMagick in PHP (v.7.1), um PDF-Dateien in Bilder zu schneiden.
Zuerst bekam ich Fehler wie:
Nach einigen Änderungen in
/etc/ImageMagick-6/policy.xml
bekomme ich Fehler wie:Mein Fix :
In Datei
/etc/ImageMagick-6/policy.xml
(oder/etc/ImageMagick/policy.xml
)Kommentarzeile
Zeile ändern
zu
Zeile hinzufügen
Starten Sie dann Ihren Webserver (Nginx, Apache) neu.
quelle
policy.xml
Datei zuletzt am 29. September aktualisiert, aber die Probleme treten erst heute auf. Ich verwende Ubuntu Server 14.04.5, stelle aber die automatische Aktualisierung ein. In passendem Protokoll fand ich über dieses Update:imagemagick-common:amd64 (6.7.7.10-6ubuntu3.12, 6.7.7.10-6ubuntu3.13),
Ich verwende oft den ImageMagic-
convert
Befehl, um*.tif
Dateien in*.pdf
Dateien zu konvertieren .Ich weiß nicht warum, aber heute bekam ich folgenden Fehler:
Nach der Ausgabe des Befehls:
Nachdem ich die obigen Antworten gelesen hatte, bearbeitete ich die Datei
/etc/ImageMagick-6/policy.xml
und änderte die Zeile:
zu
und jetzt funktioniert alles gut.
Ich habe "ImageMagick 6.8.9-9 Q16 x86_64 2018-09-28" auf "Ubuntu 16.04.5 LTS".
quelle
convert
PDF erforderlich .Wenn Sie immer noch hier sind, versuchen Sie, Bilder zu bearbeiten, über die Sie die vollständige Kontrolle haben, die sicher sind und die von Benutzern nicht bearbeitet werden können.
Es gibt eine
/etc/ImageMagick/policy.xml
Datei, die von yum installiert wird. Es erlaubt fast alles (aus Sicherheitsgründen und um Ihr System vor Überlastung durch ImageMagick-Aufrufe zu schützen).Wenn Sie
ReadImage
wie oben eine Fehlermeldung erhalten, können Sie die Zeile ändern in:welches das Problem beheben sollte.
Die Datei enthält eine Reihe von Dokumentationen, daher sollten Sie diese lesen. Wenn Sie beispielsweise mehr Berechtigungen benötigen, können Sie diese wie folgt kombinieren:
... was dem Entfernen aller Berechtigungsprüfungen (dh Löschen oder Auskommentieren der Zeile) vorzuziehen ist.
quelle
poppler
ist eine Alternative zu GhostScript (das daraufconvert
beruht, PDF-Seiten in Bilder zu rasteren )Wenn jemand dies nach der Installation mit einem Befehl tun muss, führen Sie dies aus!
quelle
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
Die Antwort mit den höchsten Stimmen (ich habe nicht genug Ruf, um dort einen Kommentar hinzuzufügen) schlägt vor, die MVG-Zeile zu kommentieren, aber bedenken Sie Folgendes:
Und
Quelle
quelle
$convert --version Version: ImageMagick 6.7.7-10 2018-09-28 Q16 http://www.imagemagick.org
Nach einem kürzlich durchgeführten Update auf meinem Ubuntu 16.04-System wurde dieser Fehler auch angezeigt, wenn ich versuchte, die Konvertierung für .ps-Dateien auszuführen, um sie in PDFs zu konvertieren.
Dieser Fix hat bei mir funktioniert:
In einem Terminallauf:
Dies sollte die Datei policy.xml im gedit-Texteditor öffnen. Wenn dies nicht der Fall ist, wird Ihre Bildmagie möglicherweise an einem anderen Ort installiert. Dann ändern
zu
für PDF-, EPS- und PS-Zeilen am Ende der Datei. Speichern und beenden, und die Bildmagie sollte dann wieder funktionieren.
quelle
Löschen Sie einfach die Datei /etc/ImageMagick/policy.xml.
quelle
policy-disabled.xml
. Ich denke, ich werde es wiederherstellen, bis ich sicher bin, dass die SicherheitsproblemeNachdem ich hier einige Vorschläge gelesen und die Ideen kombiniert hatte, waren für mich folgende Änderungen in /etc/ImageMagick-6/policy.xml erforderlich:
... rights = "none" hat nicht geholfen. ... pattern = "LABEL" war nicht erforderlich. Obwohl ich nicht mit großen PNG-Dateien (nur ~ 1 MB) arbeite, waren auch einige Änderungen der Speichergrenzen erforderlich:
(anstelle von 256Mib) und
(statt 128 MB)
quelle
Ich hatte diesen Fehler beim Versuch, ein PDF in JPG zu konvertieren, und löste ihn mit der folgenden Methode: sudo vi /etc/ImageMagick*/policy.xml
Veränderung:
policy domain = "coder" rights = "none" pattern = "PDF"
zu:
policy domain = "coder" rights = "read | write" pattern = "PDF"
Quelle: http://realtechtalk.com/ImageMagick_Convert_PDF_Not_Authorized-2217-articles
quelle
Wenn Sie Rasterdateien und PDF / PS / EPS nicht mit demselben Tool verarbeiten müssen, sollten Sie die Sicherheit von ImageMagick nicht beeinträchtigen.
Halten Sie stattdessen Ihre Verteidigung für Ihre Webanwendungen intakt, überprüfen Sie, ob Ihr Ghostscript auf alle bekannten
-dSAFER
Sicherheitslücken gepatcht wurde, und rufen Sie es dann direkt auf.-dSAFER
wählt Sie aus dem Legacy-Kompatibilitätsmodus "Postscript ausführen wird die volle Berechtigung zur Interaktion mit der Außenwelt als vollständige Programmiersprache".-r300
setzt die gewünschte DPI auf 300 (die Standardeinstellung ist 72)-sDEVICE
Gibt das Ausgabeformat an ( Weitere Optionen finden Sie im Abschnitt Geräte des Handbuchs.)-o
ist eine Abkürzung für-dBATCH -dNOPAUSE -sOutputFile=
Wenn Sie EPS-Dateien rendern, fügen
-dEPSCrop
Sie diese hinzu, damit Ihre Ausgabe nicht auf Seitengröße aufgefüllt und-sDEVICE=pngalpha
transparente Hintergründe erstellt werden.quelle
-r600 -dDownScaleFactor=4
beim Erstellen einer Datei mit 150 dpi, aber besserem Anti-Aliasing erzielt .Ich hatte auch den Fehler
error/constitute.c/ReadImage/453
beim Versuch, ein EPS mit Image Magick in ein GIF umzuwandeln. Ich habe die von sNICkerssss vorgeschlagene Lösung ausprobiert, hatte aber immer noch Fehler (obwohl anders als die erste). Eerror/constitute.c/ReadImage/412
Das Problem wurde gelöst, indemread
andere Einträge verwendet wurdenquelle