我希望嘗試建立一個小型影像轉換器,將上傳到 php Web 文件的 HEIC 檔案轉換為 .JPG(或任何其他通用檔案格式)。
我正在 unix 伺服器上運行 PHP,並在伺服器上安裝了 ImageMagick。以下命令列程式碼在伺服器上運行:
mogrify -format jpg *.HEIC
我想將此命令列程式碼轉換為 PHP。
如前所述,我喜歡將命令列格式化程式碼轉換為 PHP。我目前在基本的 HTML PHP 表單中設定了以下程式碼。正在轉換的檔案是新上傳的並且不在伺服器上。如果有必要,我可以先上傳到伺服器,然後從伺服器檔案中讀取。
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); } }
此程式碼下載“test.jpg”文件,但當我嘗試在 Windows 圖像檢視器中打開它時,它顯示“我們似乎不支援此文件格式”訊息。我對 PHP 比較陌生,所以我不知道輸出/輸入流的所有技巧,所以如果我的程式碼很糟糕,請告訴我。
歡迎任何及所有協助。謝謝!
我認為您需要為格式指定“jpeg”而不是“jpg”。
#$image_to_convert->setFormat("jpeg");