前回の記事では、「PHP で画像の拡大縮小とトリミングを完了するにはどうすればよいですか?」についてお届けしました。 (例の詳細な説明) 》, PHP でグラフィックスをズームおよびクロップする方法を例を通して紹介します. この記事では、PHP でのグラフィックス処理の知識と、画像にグラフィックスを追加する方法について引き続き見ていきます。みんなが助けてくれることを願っています!
私たちの日常生活では、写真の盗難を防ぐために、写真に透かしが追加されているのをよく見かけます。たとえば、Web サイトでは、写真ファイルを入力します。右下隅に自動的にウォーターマークが追加されますが、このウォーターマーク効果はどのように実現されるのでしょうか?画像に透かしを追加する効果は、PHP を通じて実現できます。
前回の記事で、画像を切り取って対象画像の上に配置するという操作は、ウォーターマークを追加するのと似ていますが、ウォーターマークを追加するには、imagecopymerge 関数を使用する必要があります。
#imagecopymerge
関数
imagecopymerge($目标图片,$来源图片,$目标开始的x ,$目标开始的y,$来源的x ,$来源的y ,$来源的宽 ,$来源的高 ,$透明度)
#知識を広げるimagecopy
機能imagecopymerge 関数を使用してウォーターマークを追加する以外に、関数の一部をコピーできる
関数を使用することもできます。その構文形式は次のとおりです。 :
その意味は、ソース画像の(x, y)からターゲット画像の(x, y)までの幅w、高さhの長方形領域を選択することです。 imagecopy($目标图片, $来源图片,$目标图片x,$目标图片y,$来源图片x,$来源图片y,$来源图片宽,$来源图片高)
PHP の imagex() 関数と imagesy() 関数を使用して、それぞれ画像の幅と高さを取得します。構文形式は次のとおりです。
imagesx(resource $image) imagesy(resource $image)
例は次のとおりです。
$district OR $district > 9) $district = 9; switch($district){ case 1: $x = +5; $y = +5; break; case 2: $x = ($img_w - $watermark_w) / 2; $y = +5; break; case 3: $x = $img_w - $watermark_w - 5; $y = +5; break; case 4: $x = +5; $y = ($img_h - $watermark_h) / 2; break; case 5: $x = ($img_w - $watermark_w) / 2; $y = ($img_h - $watermark_h) / 2; break; case 6: $x = $img_w - $watermark_w; $y = ($img_h - $watermark_h) / 2; break; case 7: $x = +5; $y = $img_h - $watermark_h - 5; break; case 8: $x = ($img_w - $watermark_w) / 2; $y = $img_h - $watermark_h - 5; break; case 9: $x = $img_w - $watermark_w - 5; $y = $img_h - $watermark_h - 5; break; } switch ($imginfo[2]) { case 1: $im = @imagecreatefromgif($img); break; case 2: $im = @imagecreatefromjpeg($img); break; case 3: $im = @imagecreatefrompng($img); break; } switch ($watermarkinfo[2]) { case 1: $watermark_logo = @imagecreatefromgif($watermark); break; case 2: $watermark_logo = @imagecreatefromjpeg($watermark); break; case 3: $watermark_logo = @imagecreatefrompng($watermark); break; } if(!$im or !$watermark_logo) return false; $dim = @imagecreatetruecolor($img_w, $img_h); if(@imagecopy($dim, $im, 0, 0, 0, 0,$img_w,$img_h )){ imagecopy($dim, $watermark_logo, $x, $y, 0, 0, $watermark_w, $watermark_h); } $file = dirname($img) . '/w' . basename($img); $result = imagejpeg ($dim,$file,$watermarkquality); imagedestroy($watermark_logo); imagedestroy($dim); imagedestroy($im); if($result){ echo $img.' 水印添加成功'; return; } else { return false; } } $file = 'test.png'; //待加水印的图片地址 $water = 'logo.png'; //水印图片的地址 watermark($file, $water); ?>
# #効果は次のとおりです:
推奨学習: 「PHP ビデオ チュートリアル
以上がPHP で画像の透かしを追加する方法を理解する必要がありますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。