ホームページ >バックエンド開発 >PHPチュートリアル >PHPで画像をサイズ変更して操作する(例を掲載)

PHPで画像をサイズ変更して操作する(例を掲載)

William Shakespeare
William Shakespeareオリジナル
2025-03-03 09:52:11404ブラウズ

このチュートリアルは、画像の読み込み、トリミング、回転、スケーリング、フリッピングの以前のカバレッジに基づいて、基本的な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()

このチュートリアルは、以前のGD関数を拡張し、高度な手法を実証しています。 PHPでの画像処理のための実用的なアプリケーションを提供して、ストリームの操作と透かしを取り上げました。これらの機能を試して、多様な画像効果を作成します

以上がPHPで画像をサイズ変更して操作する(例を掲載)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。