Heim  >  Fragen und Antworten  >  Hauptteil

Konvertieren Sie .HEIC in .JPG mit ImageMagick in PHP

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粉322918729P粉322918729322 Tage vor748

Antworte allen(1)Ich werde antworten

  • P粉667649253

    P粉6676492532023-11-03 09:57:29

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

    $image_to_convert->setFormat("jpeg");

    Antwort
    0
  • StornierenAntwort