ホームページ >バックエンド開発 >PHPチュートリアル >PHPで画像をサイズ変更して操作する(例を掲載)
このチュートリアルは、画像の読み込み、トリミング、回転、スケーリング、フリッピングの以前のカバレッジに基づいて、基本的なPHP GDライブラリ画像操作を拡張しています。 画像出力ストリームのキャプチャをキャプチャしたり、透かしを埋め込むなど、高度なテクニックを探ります。
以前は、画像出力について
およびを調べました。 この出力をimagejpeg()
のような関数を使用してキャプチャできます。 たとえば、ファイル名の引数がないimagegif()
は、生のストリームを出力します。このストリームをキャプチャします。 この生データは、base64エンコードできます。 逆に、base64エンコードされた画像文字列をデコードして使用してimagecreatefromjpeg()
を介して画像を作成できます。 base64エンコード画像を保存する方法は次のとおりです
imagejpeg()
ob_get_contents()
これにより、base64文字列がデコードされ、画像リソースが作成され、jpegとして保存されます。
imagecreatefromstring()
<?php $image_data = base64_decode($image_data_base64); $img = imagecreatefromstring($image_data); imagejpeg($img, 'profile.jpg'); imagedestroy($img); ?>
透かしはGDで簡単に実現できます。 これにより、画像の所有権とブランド認知が向上します
このコードは、メイン画像と透かしをロードし、透かしをメイン画像の幅の5分の1に拡張し、を使用して配置します。 ダイナミックウォーターマークのサイズ変更により、メイン画像の寸法に関係なく適切なスケーリングが保証されます。
透かしを超えて、メタデータのような場所やタイムスタンプも同様に組み込むことができます。
<?php $im_php = imagecreatefromjpeg('waterfall.jpg'); $watermark = imagecreatefrompng('watermark.png'); $im_width = imagesx($im_php); $im_height = imagesy($im_php); $watermark = imagescale($watermark, $im_width/5); $wt_width = imagesx($watermark); $wt_height = imagesy($watermark); imagecopy($im_php, $watermark, 0.95*$im_width - $wt_width, 0.95*$im_height - $wt_height, 0, 0, $wt_width, $wt_height); $new_name = 'waterfall-watermark.jpg'; imagejpeg($im_php, $new_name); ?>
結論imagecopy()
以上がPHPで画像をサイズ変更して操作する(例を掲載)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。