Saya berharap untuk mencuba mencipta penukar imej kecil yang menukar fail HEIC yang dimuat naik ke dokumen web php kepada .JPG (atau mana-mana format fail biasa yang lain).
Saya menjalankan PHP pada pelayan unix dan telah memasang ImageMagick pada pelayan. Kod baris arahan berikut berjalan pada pelayan:
mogrify -format jpg *.HEIC
Saya mahu menukar kod baris arahan ini kepada PHP.
Seperti yang dinyatakan sebelum ini, saya suka menukar kod pemformatan baris arahan kepada PHP. Pada masa ini saya mempunyai kod berikut yang disediakan dalam bentuk HTML + PHP asas. Fail yang ditukar baru dimuat naik dan tiada pada pelayan. Jika perlu saya boleh memuat naik ke pelayan terlebih dahulu dan kemudian membaca dari fail pelayan.
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); } }
Kod ini memuat turun fail "test.jpg", tetapi apabila saya cuba membukanya dalam Windows Image Viewer, ia memaparkan mesej "Kami nampaknya tidak menyokong format fail ini". Saya agak baru dengan PHP, jadi saya tidak tahu semua helah aliran output/input, jadi jika kod saya buruk, sila beritahu saya.
Sebarang bantuan dialu-alukan. Terima kasih!
Saya rasa anda perlu menentukan "jpeg" dan bukannya "jpg" untuk format.
$image_to_convert->setFormat("jpeg");