ホームページ >バックエンド開発 >PHPチュートリアル >imagick を使用して PHP に PSD ファイルのサムネイルを生成させる方法 (例)
ImageMagick は、強力で安定した無料のツールセットおよび開発パッケージであり、一般的な TIFF、JPEG、GIF、PNG、PDF、PhotoCD およびその他の形式を含む、185 を超える基本形式の画像ファイルの読み取り、書き込み、処理に使用できます。 。 ImageMagick を使用すると、Web アプリケーションのニーズに応じて画像を動的に生成できます。また、サイズの変更、回転、鮮明化、減色、または画像 (または画像のグループ) への特殊効果の追加を行うこともでき、結果を同じ形式で保存するか、他の形式で保存します。
#imagick を使用して PHP に PSD ファイルのサムネイルを生成させます
#最初のステップは、ImageMagick をインストールすることですimagick は PHP が ImageMagick 関数を呼び出せるようにする PHP 拡張機能であるため、最初に
ImageMagickをインストールする必要があります。 (現在の最新バージョンは: ImageMagick-6.8.9-5-Q16-x64-dll.exe) インストール ディレクトリにスペースを含めることはできません。私は個人的に C ドライブのルート ディレクトリにインストールしました:
C:\ImageMagick
デフォルトですべてインストールできます。インストールが完了したら、CMD コマンド ライン インターフェイスを開き、convert と入力して Enter キーを押します。多くのコンテンツが表示されれば、インストールは成功です。 。
「convert は内部コマンドでも外部コマンドでも、操作可能なプログラムでもバッチ ファイルでもありません」または「変換するドライブ文字を入力してください」というプロンプトが表示された場合 (convert は、FAT32 を NTFS コマンドに変換するためのデフォルトのシステムです) ImageMagick のインストール パスをシステム パスに自分で追加する必要があります。
マイ コンピュータ -> 右クリック -> プロパティ -> 詳細設定 -> 環境変数 -> システム変数 -> 「パス」の検索 -> 選択してクリックして編集 -> ;インストール パスをそれに追加します。
2 番目のステップ、imagick をインストールしますここ
をクリックしてダウンロードします。ダウンロードする際には、対応する PHP バージョンをダウンロードする必要があることに注意してください。システムが 32 ビットか 64 ビットか、PHP が NTS 版か TS 版か (最新の安定バージョンは 3.1.2 です。PHP が NTS 版か TS 版かを判断する方法については、以下を確認できます) phpinfo を介してスレッド セーフティ項目を確認します。有効になっている場合は TS バージョン、それ以外の場合は NTS バージョンです) ダウンロードした圧縮パッケージを解凍し、php_imagick.dll ファイルを見つけて、PHP 拡張機能に入れます次の行を追加します。
extension=php_imagick.dll
保存して終了し、コンピュータを再起動して、設定が有効であることを確認します。
#これが有効にならない場合は、圧縮パッケージ内のすべての「CORE_RL_*.dll」ファイルを php ルート ディレクトリ (例: D:\php5.6#) にコピーします。 #3 番目のステップ、チェックすべてが正常であれば、再起動後に phpinfo に次のような imagick 項目が表示されるはずです。 見つからない場合は、最初のステップとして、別のバージョンの ImageMagick に置き換えます。再インストールして再実行します。
4 番目のステップ、テストOK、このステップでコードの作成を開始できます。プロセスの詳細については説明しません。コードに進むだけです。 error_reporting(E_ERROR | E_WARNING);
$im = new Imagick('1.psd');
$im->setImageIndex(0);
$im->setIteratorIndex(0);
$im->stripImage(); //去除图片信息
$im->setImageCompressionQuality(80); //图片质量
$im->writeImage('1.jpg');
上記のコードはテストされており、1.jpg 画像を正しく生成できます。
png 形式は圧縮をサポートしていないため、サムネイルは jpg 形式にすることをお勧めします。テストしたときは、30M PSD ファイルを使用しました。生成された png サムネイルは 3M 以上でしたが、jpgサイズはわずか約 200 KB で、生成された PNG 画像の速度は明らかに非常に遅く、約 3 ~ 4 秒かかります。
さらに、極端なテストを行ったところ、約 600M の PSD ファイルを使用して jpg サムネイルを生成しましたが、速度は基本的に 2 秒以内、ファイル サイズは 2.5M 未満でした。変更されていないため、最終的に生成されるファイルのサイズは、実際の状況に応じて削減できます。
5 番目のステップ、その他の形式PSD ファイルに加えて、MP4、AVI、その他のビデオ形式など、いくつかの他の形式も試しましたが、速度は超遅いです。最後に、最も実用的なのは PDF ファイルのサムネイルを生成することであることがわかりました。しかし、PDF ファイルを処理する前に、Ghostscript をインストールする必要があります。その後、全体のコードは基本的に PSD を生成するコードと同じになります。
$im = new Imagick(); $im->readImage('D:/soft/wamp/www/test/1.pdf[0]'); //echo $im->getNumberImages(); $im->writeImages('D:/soft/wamp/www/test/1.jpg', false);
more php 関連知識については、php チュートリアル をご覧ください。
以上がimagick を使用して PHP に PSD ファイルのサムネイルを生成させる方法 (例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。