Ich hoffe, dass ich versuchen kann, einen kleinen Bildkonverter zu erstellen, der HEIC-Dateien, die in ein PHP-Webdokument hochgeladen wurden, in .JPG (oder ein anderes gängiges Dateiformat) konvertiert.
Ich verwende PHP auf einem Unix-Server und habe ImageMagick auf dem Server installiert. Der folgende Befehlszeilencode wird auf dem Server ausgeführt:
mogrify -format jpg *.HEIC
Ich möchte diesen Befehlszeilencode in PHP konvertieren.
Wie bereits erwähnt, konvertiere ich gerne Befehlszeilenformatierungscode in PHP. Ich habe derzeit den folgenden Code in einer einfachen HTML + PHP-Form eingerichtet. Die zu konvertierende Datei wurde neu hochgeladen und befindet sich nicht auf dem Server. Bei Bedarf kann ich die Datei zuerst auf den Server hochladen und dann von der Serverdatei lesen.
if($_SERVER["REQUEST_METHOD"] == "POST") { if(empty($_FILES['image_url']['name'])) { echo "No File uploaded"; } else{ $uploadedImage = fopen($_FILES['image_url']['tmp_name'], 'rb'); $image_to_convert = new Imagick(); $image_to_convert->readImageFile($uploadedImage); $image_to_convert->setFormat("jpg"); $image_to_convert->setFileName('test.jpg'); header('Content-Type: image/jpg'); header('Content-disposition: attachment; filename='.$image_to_convert->getFileName()); header("Content-Description: File Transfer"); readfile($image_to_convert); } }
Dieser Code lädt die Datei „test.jpg“ herunter, aber wenn ich versuche, sie im Windows Image Viewer zu öffnen, wird die Meldung „Wir scheinen dieses Dateiformat nicht zu unterstützen“ angezeigt. Ich bin relativ neu in PHP und kenne daher nicht alle Tricks von Ausgabe-/Eingabestreams. Wenn mein Code also schlecht ist, lassen Sie es mich bitte wissen.
Jede Hilfe ist willkommen. Danke!
我认为您需要为格式指定“jpeg”而不是“jpg”。
$image_to_convert->setFormat("jpeg");