Perisian pengeditan dan penciptaan gambar percuma. ImageMagick Ia boleh membaca, menukar dan menulis imej dalam pelbagai format. Pemotongan gambar, penggantian warna, aplikasi pelbagai kesan, putaran gambar, gabungan, teks, garis lurus, poligon, elips, lengkung, sambungan dan putaran yang dilampirkan pada gambar. ImageMagick ialah perisian percuma: semua kod sumber terbuka dan boleh digunakan, disalin, diubah suai, dan diedarkan secara bebas Ia mematuhi perjanjian lesen GPL dan boleh dijalankan pada kebanyakan sistem pengendalian.
Untuk menggunakan ImageMagick dalam PHP, anda perlu memasang imagick
sambungan imagick
serupa dengan sambungan gd
dan digunakan terutamanya untuk pemprosesan imej, tetapi fungsi lebih berkuasa. Berikut ialah pengenalan ringkas kepada kaedah pemasangan imagick
dalam dua persekitaran biasa. imagick
terus untuk memasangnya dalam CentOS Selain memasang Yum
, anda juga perlu memasangnya dua tanggungan ImageMagick
dan ImageMagick-devel
. ImageMagick-perl
yum install -y ImageMagick ImageMagick-devel ImageMagick-perl
untuk memasang sambungan. Cari pecl
dalam direktori pemasangan PHP Contohnya, jika PHP dipasang dalam direktori pecl
, maka /usr/local/php74
biasanya berada dalam sasaran pecl
: /usr/local/php74/bin
/usr/local/php74/bin/pecl install imagick
Muat turun dan pasang pecl
secara automatik, dan akhirnya tambah ImageMagick
php.ini
extension=imagick.so
php -m|grep imagick
adalah output, ini bermakna sambungan berjaya dipasang. imagick
Digression: Jika anda tidak tahu fail konfigurasi PHP yang mana, anda boleh laksanakan arahan berikut php.ini
php74 -i|grep ini
php -i
adalah serupa dengan cara kami menggunakan fungsi
untuk melihat maklumat berkaitan PHP. phpinfo()
FROM php:7.2-cli # 从Github上下载docker-php-extension-installer脚本 ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ # 添加可执行权限并安装扩展 RUN chmod +x /usr/local/bin/install-php-extensions && \ install-php-extensions gd xdebug imagick
Penyimpangan: Dalam persekitaran rangkaian domestik, masalah tamat masa sering berlaku apabila menggunakan untuk memasang sambungan Adalah disyorkan untuk menggunakan VPS luaran untuk membina imej dan memuat naik ia ke DockerHub atau lain-lain Selepas mencipta gudang persendirian, tariknya ke rangkaian tempatan untuk digunakan. Anda boleh menggunakan awan hati nurani yang murah, atau VPS seperti Vultr yang menyokong pengebilan masa. docker-php-extension-installer
// 实例化imagick对象 $im = new imagick(); $im->setResolution(150, 150); $im->setCompressionQuality(100); $im->readImageBlob($fileContent); $im->setImageFormat('jpg'); $im->setImageBackgroundColor('white'); $im->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE); $im->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN); header("Content-type: image/jpeg"); echo $im->getImageBlob();
$im->setResolution(150, 150);
Fungsi ini menerima dua parameter, iaitu resolusi mendatar dan resolusi menegak Nilai lalai ialah 72*72. Untuk mengekalkan nisbah aspek imej, nilai kedua-dua parameter ini harus sama. Imej yang ditukar dengan nilai lalai tidak cukup jelas imej juga akan menjadi lebih besar.
$im->setCompressionQuality(100);
$im->readImageBlob($fileContent);
untuk membaca fail PDF yang disimpan. readImage($filename)
$im->setImageFormat('jpg');
, jpg
, dsb., png
$im->setImageBackgroundColor('white'); $im->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE); $im->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
header("Content-type: image/png"); echo $im->getImageBlob();
获取转换生成图像的二进制数据,输出到客户端供下载;如果需要保存到文件,可以使用writeImage($filename)
函数。
推荐:《PHP视频教程》
Atas ialah kandungan terperinci [PHP ImageMagick] Tukar PDF kepada imej (langkah terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!