Konvertieren Sie .HEIC in .JPG mit ImageMagick in PHP
P粉322918729
P粉322918729 2023-11-02 17:38:57
0
1
835

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!

P粉322918729
P粉322918729

Antworte allen(1)
P粉667649253

我认为您需要为格式指定“jpeg”而不是“jpg”。

$image_to_convert->setFormat("jpeg");

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage