1. 程式人生 > >第九章 php影象處理(水印)

第九章 php影象處理(水印)

給圖片加文字水印
<?php

header('Content-type:image/jpeg');
$img=imagecreatefromjpeg('images/lzs.jpg');
$color=imagecolorallocate($img, 209, 224, 239);

$width=imagesx($img);
$height=imagesy($img);

// getimagesize();此函式也可以取得圖片長和寬,但輸入的是圖片路徑

// 計算文字的寬度
$position=imagettfbbox(20,0,'font/Elements.ttf','LTEsoft.com');
$stringWidth=$position[2]-$position[0];

// 控制文字水印的位置
imagettftext($img, 24, 0, $width-1-$stringWidth-($width/20), $height-1-($height/10), $color, 'font/Elements.ttf', 'LTEsoft.com');

imagejpeg($img); //輸出圖片
imagedestroy($img);

給圖片加圖片透明水印
<?php

header('Content-type:image/jpeg');
$img=imagecreatefromjpeg('images/lzs.jpg');

$waterMark=imagecreatefrompng('images/water1.png');
$color=imagecolorallocate($img, 255, 255, 255);

$width=imagesx($img);
$height=imagesy($img);

$waterMarkWidth=imagesx($waterMark);
$waterMarkHeight=imagesy($waterMark);

$position=imagettfbbox(20,0,'font/Elements.ttf','huntfox.net');
$stringWidth=$position[2]-$position[0];

//文字水印
imagettftext($img, 24, 0, $width-1-$stringWidth, $height-1, $color, 'font/Elements.ttf', 'huntfox.net');

imagecopymerge($img, $waterMark, $width-1-$waterMarkWidth, $height-1-$waterMarkHeight, 0, 0, $waterMarkWidth, $waterMarkHeight,70);
/* 100:所拷貝到目標影象資源上面的座標(x軸)
 100:所拷貝到目標影象資源上面的座標(y軸)
 0:從水印影象資源的x座標為0的位置開始拷貝
 0:從水印影象資源的y座標為0的位置開始拷貝
 因為imagecopy()函式是拷貝水印影象的部分,而我們現在要拷貝的是全部水印影象 */

imagejpeg($img); //輸出圖片
imagedestroy($img);