ImageMagickは、画像の作成、編集、合成を行うための無料ソフトウェアです。複数の形式のイメージを読み取り、変換、書き込みできます。画像の切り取り、色の置換、各種効果の適用、画像の回転、結合、文字、直線、多角形、楕円、曲線、画像に付随する拡大・回転。 ImageMagick はフリー ソフトウェアです: すべてのソース コードはオープンであり、自由に使用、コピー、変更、配布できます。GPL ライセンス契約に準拠しており、ほとんどのオペレーティング システムで実行できます。ImageMagick のほとんどの機能はコマンド ライン ツールから提供されます。
PHP で ImageMagick を使用するには、imagick
拡張機能をインストールする必要があります。imagick
は gd
拡張機能に似ており、主に画像処理に使用されますが、imagick
の方が強力です。以下に、2 つの一般的な環境での imagick
のインストール方法を簡単に紹介します。
ImageMagick
のインストールに加えて、Yum
を使用して CentOS に直接インストールできます。 2 つの依存関係 ImageMagick-devel
と ImageMagick-perl
もインストールする必要があります。
yum install -y ImageMagick ImageMagick-devel ImageMagick-perl
次に、pecl
を使用して拡張機能をインストールします。 PHP インストール ディレクトリで pecl
を見つけます。たとえば、PHP は /usr/local/php74
ディレクトリにインストールされており、通常、pecl
は にあります。 /usr/local /php74/bin
ターゲット内でコマンド
/usr/local/php74/bin/pecl install imagick
を実行し、pecl
を使用して ImageMagick
を自動的にダウンロードしてインストールします。 php.ini の
extension=imagick.soを
に追加して、拡張機能を有効にします。
拡張機能が正常にインストールされたかどうかを確認する必要がある場合は、コマンド
php -m|grep imagick
を実行できます。imagick
が出力された場合は、拡張機能が正常にインストールされたことを意味します。
余談 : PHP がどの php.ini
設定ファイルを使用するかわからない場合は、次のコマンド
php74 -i|grep ini## を実行できます。 #「Loaded Configuration File」という行を見つけると、PHP がどの構成ファイルを使用しているかがわかります。
php -i コマンド
は、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この方法で構築されたイメージには、必要な拡張機能がインストールされます。
余談 : 国内のネットワーク環境では、docker-php-extension-installer を使用して拡張機能をインストールすると、タイムアウトの問題が頻繁に発生します。外部ネットワークを使用する VPS 上にイメージを構築し、DockerHub またはその他のプライベート ウェアハウスにアップロードして、ローカル ネットワークにプルして使用します。安価な良心クラウド、または時間ベースの請求をサポートする Vultr のような VPS を使用できます。
// 实例化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);
この関数は、水平解像度と垂直解像度という 2 つのパラメータを受け取ります。デフォルト値は 72*72 です。画像のアスペクト比を維持するには、これら 2 つのパラメータの値は同じである必要があります。デフォルト値で変換された画像は十分に鮮明ではありません。値を 2 倍または 3 倍にすることをお勧めしますが、サイズは画像も大きくなります。
$im->setCompressionQuality(100);
$im->readImageBlob($fileContent);
readImage($filename) 関数を使用して保存された PDF ファイルを読み取ることができます。
$im->setImageFormat('jpg');
jpg、
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视频教程》
以上が[PHP+ImageMagick] PDF を画像に変換する (詳細な手順)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。