當前位置:首頁 » 編程語言 » 圖片加水印php

圖片加水印php

發布時間: 2023-05-09 17:09:29

php如何根據圖片色階不同添加水印

在使用php編程的時候, 很多時候需要對上傳的圖片加水印,來確定圖片版權和出處. 但是,一般情況下加水印的位置是圖片的右下角, 但是,不同圖片的色階不同,有時候我們 圖片的水印和圖片本身色階相同,就會造成水印不明顯.
下面這段代碼可以實現自動識別圖片的色階,更加色階差來添加圖片的水印,這樣可以避免水印和圖片色階一樣的弊端.
<?php
function add_wm($nmw_water, $src_file, $output_file, $x, $y) {
if(file_exists($output_file))
return;
$w1 = MagickGetImageWidth($nmw_water);
$h1 = MagickGetImageHeight($nmw_water);
$nmw =NewMagickWand();
MagickReadImage($nmw, $src_file);
// 默認的加水印位置調整
$lt_w = 50;
$lt_h = 50;
if($x == 0){
$w = MagickGetImageWidth($nmw);
$h = MagickGetImageHeight($nmw);
$x = $w;
$y = $h;
}else{
// 根據具體情況調整
$lt_w = 30;
$lt_h = 40;
}
MagickCompositeImage($nmw, $nmw_water, MW_OverCompositeOp, $x - $w1 - $lt_w, $y - $h1 - $lt_h);
MagickWriteImage($nmw, $output_file);
DestroyMagickWand($nmw);
}
// 還是groovy的eachFileRecurse好用啊
function add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr) {
$dp = dir($to_dir);
while($file=$dp->read()){
if($file != '.' && $file != '..'){
if(is_dir($to_dir . '/' . $file)){
mkdir($output_dir . '/' . $file);
add_wm_recurse($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $arr);
}else{
if(!array_key_exists($to_dir . '/' . $file, $arr)){
continue;
}
$sub_arr = $arr[$to_dir . '/' . $file];
if($sub_arr){
$x = intval($sub_arr[0]);
$y = intval($sub_arr[1]);
add_wm($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $x, $y);
}
}
}
}
$dp->close();
}
$to_dir = './resized';
$output_dir = './output';
// 這個是我用java的ImageIO遍歷圖片像素獲取的符合褲子顏色的區域的坐標array(posX, posY)
$arr = array(
array(50, 50)
);
$water = './water.png';
$nmw_water =NewMagickWand();
MagickReadImage($nmw_water, $water);
add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr);
DestroyMagickWand($nmw_water);
?>

補充:
PHP圖像處理模塊 MagickWand用法
MagickWand 是一個PHP的模塊,用來訪問 ImageMagick 的圖像處理庫。下面是一個使用 MagicWand 的代碼片段:
$magick_wand=NewMagickWand();
MagickReadImage($magick_wand,'rose.jpg');
$drawing_wand=NewDrawingWand();
DrawSetFont($drawing_wand,"/usr/share/fonts/bitstream-vera/Vera.ttf");
DrawSetFontSize($drawing_wand,20);
DrawSetGravity($drawing_wand,MW_CenterGravity);
$pixel_wand=NewPixelWand();
PixelSetColor($pixel_wand,"white");
DrawSetFillColor($drawing_wand,$pixel_wand);
if (MagickAnnotateImage($magick_wand,$drawing_wand,0,0,0,"Rose") != 0)
{
MagickEchoImageBlob( $magick_wand );
}
else
{
echo MagickGetExceptionString($magick_wand);
}
?>

安裝方法:
1. 下載 php_magickwand_q16_st.dll for 5.2.x
2. 將其放在PHP的擴展目錄
3. 在php.ini文件總增加 extension=php_magickwand_q16_st.dll
4. 重新啟動apache

Ⅱ php圖片加水印出錯

代碼沒迅升睜有問題。
運行時報錯的原因是在執行header("Content-Type....")之前有echo或者輸出了笑念什麼東西。
修改方法是刪除header()之前的所有輸出。

BTW,你看報錯中提到的header是畝歲第11行,所以你給出的代碼之前應該還有點什麼東西吧。檢查一下吧。

Ⅲ php如何給圖片加文字水印

我知道的有三種,都是使用GD庫的image函數
一種是直接在圖片上寫文字
imagefttext();
一種是帶透明度的水印圖片
image();
還有一種是可以自定義水印圖片透明度的
imagemerge();
你想要什麼效果,可以接著細說

Ⅳ php圖片水印代碼問題拜託了各位 謝謝

不顯示的話就是你沒輸出來,請參考以下代碼重新檢查一遍: ------------------------------華麗分割線------------------------------------- <? /* * 功能:PHP圖片水印 (水印支持圖片或文字) * 參數: * $groundImage 背景圖片,即需要加水印的圖片,暫只支持GIF,JPG,PNG格式; * $waterPos 水印位置,有10種狀態,0為隨機位置; * 1為頂端居左,2為頂端居中,3為頂端居右; * 4為中部居左,5為中部居中,6為中部居右; * 7為底端居左,8為底端居中,9為底端居右; * $waterImage 圖片水印,即作為水印的圖片,暫只支持GIF,JPG,PNG格式; * $waterText 文字水印,即把文字作為為水印,支持ASCII碼,不支持中文; * $fontSize 文字大小,值為1、2、3、4或5,默認為5; * $textColor 文字顏色,值為十六進制顏色值,默認為#CCCCCC(白灰色); * $fontfile ttf字體文件,即用來設置文字水印的字體。使用windows的用戶在系統盤的目錄中 * 搜索*.ttf可以得到系統中安裝的字體文件,將所要的文件拷到網站合適的目錄中, * 默認是當前目錄下arial.ttf。 * $xOffset 水平偏移量,即在默認水印坐標值基礎上加上這個值,默認為0,如果你想留給水印留 * 出水平方向上的邊距,可以設置這個值,如:2 則表示在默認的基礎上向右移2個單位,-2 表示向左移兩單位 * $yOffset 垂直偏移量,即在默認水印坐標值基礎上加上這個值,默認為0,如果你想留給水印留 * 出垂直方向上的邊距,可以設置這個值,如:2 則表示在默認的基礎上向下移2個單位,-2 表示向上移兩單位 * 返回值: * 0 水印成功 * 1 水印圖片格式目前不支持 * 2 要水印的背景圖片不存在 * 3 需要加水印的圖片的長度或寬度比水印圖片或文字區域還小,無法生成水印 * 4 字體文件不存在 * 5 水印文字顏色格式不正確 * 6 水印背景圖片格式目前不支持 * 修改記錄: * * 注意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG * $waterImage 和 $waterText 最好不要同時使用,選其中之一即可,優先使用 $waterImage。 * 當$waterImage有效時,參數$waterString、$stringFont、$stringColor均不生效。 * 加水印後的圖片的文件名和 $groundImage 一樣。 * 作者:高西林 * 日期:2007-4-28 * 說明:本程序根據longware的程序改寫而成。 */ function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$fontSize=12,$textColor="#CCCCCC", $fontfile='./arial.ttf',$xOffset=0,$yOffset=0) { $isWaterImage = FALSE; //讀取水印文件 if(!empty($waterImage) && file_exists($waterImage)) { $isWaterImage = TRUE; $water_info = getimagesize($waterImage); $water_w = $water_info[0];//取得水印圖片的寬 $water_h = $water_info[1];//取得水印圖片的高 switch($water_info[2]) { //取得水印圖片的格式 case 1:$water_im = imagecreatefromgif($waterImage);break; case 2:$water_im = imagecreatefromjpeg($waterImage);break; case 3:$water_im = imagecreatefrompng($waterImage);break; default:return 1; } } //讀取背景圖片 if(!empty($groundImage) && file_exists($groundImage)) { $ground_info = getimagesize($groundImage); $ground_w = $ground_info[0];//取得背景圖片的寬 $ground_h = $ground_info[1];//取得背景圖片的高 switch($ground_info[2]) { //取得背景圖片的格式 case 1:$ground_im = imagecreatefromgif($groundImage);break; case 2:$ground_im = imagecreatefromjpeg($groundImage);break; case 3:$ground_im = imagecreatefrompng($groundImage);break; default:return 1; } } else { return 2; } //水印位置 if($isWaterImage) { //圖片水印 $w = $water_w; $h = $water_h; $label = "圖片的"; } else { //文字水印 if(!file_exists($fontfile))return 4; $temp = imagettfbbox($fontSize,0,$fontfile,$waterText);//取得使用 TrueType 字體的文本的范圍 $w = $temp[2] - $temp[6]; $h = $temp[3] - $temp[7]; unset($temp); } if( ($ground_w < $w) || ($ground_h < $h) ) { return 3; } switch($waterPos) { case 0://隨機 $posX = rand(0,($ground_w - $w)); $posY = rand(0,($ground_h - $h)); break; case 1://1為頂端居左 $posX = 0; $posY = 0; break; case 2://2為頂端居中 $posX = ($ground_w - $w) / 2; $posY = 0; break; case 3://3為頂端居右 $posX = $ground_w - $w; $posY = 0; break; case 4://4為中部居左 $posX = 0; $posY = ($ground_h - $h) / 2; break; case 5://5為中部居中 $posX = ($ground_w - $w) / 2; $posY = ($ground_h - $h) / 2; break; case 6://6為中部居右 $posX = $ground_w - $w; $posY = ($ground_h - $h) / 2; break; case 7://7為底端居左 $posX = 0; $posY = $ground_h - $h; break; case 8://8為底端居中 $posX = ($ground_w - $w) / 2; $posY = $ground_h - $h; break; case 9://9為底端居右 $posX = $ground_w - $w; $posY = $ground_h - $h; break; default://隨機 $posX = rand(0,($ground_w - $w)); $posY = rand(0,($ground_h - $h)); break; } //設定圖像的混色模式 imagealphablending($ground_im, true); if($isWaterImage) { //圖片水印 image($ground_im, $water_im, $posX + $xOffset, $posY + $yOffset, 0, 0, $water_w,$water_h);//拷貝水印到目標文件 } else {//文字水印 if( !empty($textColor) && (strlen($textColor)==7) ) { $R = hexdec(substr($textColor,1,2)); $G = hexdec(substr($textColor,3,2)); $B = hexdec(substr($textColor,5)); } else { return 5; } imagettftext ( $ground_im, $fontSize, 0, $posX + $xOffset, $posY + $h + $yOffset, imagecolorallocate($ground_im, $R, $G, $B), $fontfile, $waterText); } //生成水印後的圖片 @unlink($groundImage); switch($ground_info[2]) {//取得背景圖片的格式 case 1:imagegif($ground_im,$groundImage);break; case 2:imagejpeg($ground_im,$groundImage);break; case 3:imagepng($ground_im,$groundImage);break; default: return 6; } //釋放內存 if(isset($water_info)) unset($water_info); if(isset($water_im)) imagedestroy($water_im); unset($ground_info); imagedestroy($ground_im); // return 0; } ?> <?php ////////////////////// if(isset($_POST['submit'])) { if(isset($_FILES) && !empty($_FILES['userfile']) && $_FILES['userfile']['size']>0) { $uploadfile = "./".time()."_".$_FILES['userfile']['name']; if (($_FILES['userfile']['tmp_name'], $uploadfile)) { if($_POST['watertype'] == 0) { $msg = "returnvalue=".imageWaterMark($uploadfile,$_POST['waterpos'],"",$_POST['watercontent'],$_POST['fontsize'],$_POST['fontcolor'],$_POST['fontfile'],$_POST['xoffset'],$_POST['yoffset']); } else { $msg = "returnvalue=".imageWaterMark($uploadfile,$_POST['waterpos'],$_POST['watercontent']); } echo "<img src=\"".$uploadfile."\" border=\"0\">"; } else { $msg = "Fail!"; } } } ?> <html> <head> <meta http-equiv=content-type content="text/html; charset=utf-8"> <title>水印函數測試</title> </head> <body> <form enctype="multipart/form-data" method="POST"> <table> <tr> <td><input name="watertype" type="radio" value=0 checked>文字水印<input type="radio" name="watertype" value=1>水印圖片</td> </tr> <tr> <td><input name="watercontent" value="blog.csdn.net/alin0725">水印文字內容或水印圖片文件名</td> </tr> <tr> <td><input name="fontcolor" value="#CCCCCC">文字水印顏色</td> </tr> <tr> <td><input name="fontsize" value="10">文字字體大小</td> </tr> <tr> <td><input name="fontfile" value="./arial.ttf">文字字體文件ttf格式</td> </tr> <tr> <td>水印位置<input name="waterpos" value=0> 0為隨機,其他位置值如下: <table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>4</td> <td>5</td> <td>6</td> </tr> <tr> <td>7</td> <td>8</td> <td>9</td> </tr> </table> </td> </tr> <tr> <td>x方向上的偏移量<input name="xoffset" value=0>y方向上的偏移量<input name="yoffset" value=0> </td> <tr> <tr> <td>背景圖片: <input name="userfile" type="file"> </td> </tr> <tr> <td><input type="submit" name="submit" value="提交"></td> </tr> <tr> <td>消息:<?php echo $msg; ?></td> </tr> </table> </form> </body> </html>

Ⅳ 誰有php批量處理圖片、圖片生成縮略圖、圖片添加水印的函數

//批量處理圖片、圖片生成縮略圖、圖片添加水印

$dir=opendir(dirname(__FILE__));
while(!!$_file=readdir($dir)){
list($filesname,$kzm)=explode(".",$_file);//獲取擴展名
if($kzm=="gif"or$kzm=="jpg"or$kzm=="JPG"or$kzm=="png"){
if(!makethumb("$_file","120","120","100")){
echo'執行成功!';
}else{
echo'執行失敗!';
}
}
}
closedir($dir);


/**
*處理縮略圖並添加水印函數
*@accesspubliuc
*@param$srcFile-----------圖片文件名
*@param$dstFile-----------另存的文件名
*@param$dstW-------------圖片保存的寬度
*@param$dstH--------------圖片保存的高度
*@param$rate---------------圖片保存的品質
*@param$markwords-----水印文字
*@param$markimage-----水印圖片
*@param使用方法makethumb("a.jpg","b.jpg","120","120","100");
*/
functionmakethumb($srcFile/*,$dstFile*/,$dstW,$dstH,$rate=100/*,$markwords=null,$markimage=null*/){

$data=GetImageSize($srcFile);
switch($data[2]){
case1:
$im=@ImageCreateFromGIF($srcFile);
break;
case2:
$im=@ImageCreateFromJPEG($srcFile);
break;
case3:
$im=@ImageCreateFromPNG($srcFile);
break;
}
if(!$im)returnFalse;
$srcW=ImageSX($im);
$srcH=ImageSY($im);
$dstX=0;
$dstY=0;
if($srcW*$dstH>$srcH*$dstW){
$fdstH=round($srcH*$dstW/$srcW);
$dstY=floor(($dstH-$fdstH)/2);
$fdstW=$dstW;
}
else
{
$fdstW=round($srcW*$dstH/$srcH);
$dstX=floor(($dstW-$fdstW)/2);
$fdstH=$dstH;
}
$ni=ImageCreateTrueColor($dstW,$dstH);
$dstX=($dstX<0)?0:$dstX;
$dstY=($dstX<0)?0:$dstY;
$dstX=($dstX>($dstW/2))?floor($dstW/2):$dstX;
$dstY=($dstY>($dstH/2))?floor($dstH/s):$dstY;
$white=ImageColorAllocate($ni,255,255,255);
$black=ImageColorAllocate($ni,0,0,0);
imagefilledrectangle($ni,0,0,$dstW,$dstH,$white);//填充背景色
ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fdstW,$fdstH,$srcW,$srcH);
//if($markwords!=null){
//$markwords=iconv("gb2312","UTF-8",$markwords);
////轉換文字編碼
//ImageTTFText($ni,20,30,450,560,$black,"simhei.ttf",$markwords);//寫入文字水印,參數依次為,文字大小|偏轉度|橫坐標|縱坐標|文字顏色|文字類型|文字內容
//}elseif($markimage!=null){
//$wimage_data=GetImageSize($markimage);
//switch($wimage_data[2]){
//case1:
//$wimage=@ImageCreateFromGIF($markimage);
//break;
//case2:
//$wimage=@ImageCreateFromJPEG($markimage);
//break;
//case3:
//$wimage=@ImageCreateFromPNG($markimage);
//break;
//}
//image($ni,$wimage,500,560,0,0,88,31);//寫入圖片水印,水印圖片大小默認為88*31
//imagedestroy($wimage);
//}
$dstFile=$srcFile.'.gif';
ImageJpeg($ni,$dstFile,$rate);
//ImageJpeg($ni,$srcFile,$rate);
imagedestroy($im);
imagedestroy($ni);
}

Ⅵ 我這有個已經實現了php上傳圖片的功能的類,但是現在還要給上傳的每張圖片加水印,請高手幫忙……

給你一個封裝的圖片處理的類吧!包含縮放和剪切功能!
構造方法只需要傳遞圖片所在路徑即可!對應方型敏法及參數都有注釋!
請給予最佳答案!!
<?php
class Img{
private $path;
//構造方法,初始化圖片信息
function __construct($path='./imgs/'){
$this->path=rtrim($path,'/').'/';
}
/**
* 對圖片進行縮放
* 參數對應:文件名 縮放後寬度 縮放後高度 縮放後圖片名前綴
*/
function thumb($name,$width,$height,$pre="th_"){
if(file_exists($this->path.$name)){
$imgInfo=$this->getInfo($name);
$img=$this->getImg($name,$imgInfo);
$newSize=$this->getNewSize($name,$width,$height,$imgInfo);
$newImg=$this->getNewInfo($img,$newSize,$imgInfo);
return $this->createNewImage($newImg, $pre.$name, $imgInfo);
}else{
echo '圖片'.$this->path.$name.'不存在,請檢查文件名及路徑是否填寫正確';
}
}
//輔助圖片處理,獲取圖片的寬、高、類型屬性
private function getInfo($name){
$temp=getImageSize($this->path.$name);
$imgInfo['width']=$temp[0];
$imgInfo['height']=$temp[1];
$imgInfo['type']=$temp[2];
return $imgInfo;
}
//輔助圖片處理,獲取創建的圖片資源
private function getImg($name,$imgInfo){
$src=$this->path.$name;
switch($imgInfo['type']){
case 1:
$img=imagecreatefromgif($src);
break;
case 2:
$img=imagecreatefromjpeg($src);
break;
case 3:
$img=imagecreatefrompng($src);
break;
}
return $img;
}
//輔助圖仔空片處理,獲取創建的圖念租瞎片資源
private function getNewSize($name,$width,$height,$imgInfo){
$newSize['width']=$imgInfo['width'];
$newSize['height']=$imgInfo['height'];
if($width<$imgInfo['width']){
$newSize['width']=$width;
}
if($height<$imgInfo['height']){
$newSize['height']=$height;
}
if($imgInfo["width"]*$newSize["width"] > $imgInfo["height"] * $newSize["height"]){
$newSize["height"]=round($imgInfo["height"]*$newSize["width"]/$imgInfo["width"]);
}else{
$newSize["width"]=round($imgInfo["width"]*$newSize["height"]/$imgInfo["height"]);
}
print_r($newSize);
return $newSize;
}
//輔助圖片處理,獲取縮放的圖片資源
private function getNewInfo($img,$newSize,$imgInfo){
$newImg=imagecreatetruecolor($newSize['height'],$newSize['height']);
$otsc=imagecolortransparent($img);
if($otsc >=0 && $otsc <= imagecolorstotal($img)){
$tran=imagecolorsforindex($img, $otsc);
$newt=imagecolorallocate($newImg, $tran["red"], $tran["green"], $tran["blue"]);
imagefill($newImg, 0, 0, $newt);
imagecolortransparent($newImg, $newt);
}
imageresized($newImg, $img, 0, 0, 0, 0, $newSize["width"], $newSize["height"], $imgInfo["width"], $imgInfo["height"]);
imagedestroy($img);
return $newImg;

}
//輔助圖片處理,創建新的圖片
private function createNewImage($newImg, $newName, $imgInfo){
switch($imgInfo["type"]){
case 1://gif
$result=imageGif($newImg, $this->path.$newName);
break;
case 2://jpg
$result=imageJPEG($newImg, $this->path.$newName);
break;
case 3://png
$return=imagepng($newImg, $this->path.$newName);
break;
}
imagedestroy($newImg);
return $newName;
}

/**
* 對圖片加水印
* 參數對應:需水印圖片 水印圖片 加水印後圖片名前綴
*/
function waterMark($name,$wname,$pre="wa_"){
if(file_exists($this->path.$name)){
if(file_exists($this->path.$wname)){
$info=$this->getInfo($name);
$winfo=$this->getInfo($wname);
if($p=$this->getPosition($info,$winfo)){
$img=$this->getImg($name,$info);
$wImg=$this->getImg($wname,$winfo);
image($img, $wImg, $p["x"], $p["y"], 0, 0, $winfo["width"], $winfo["height"]);
imagedestroy($wImg);
return $this->createNewImage($img,$pre.$name,$info);
}else{
echo '水印圖片尺寸大於原圖片尺寸';
}
}else{
echo '水印圖片'.$this->path.$wname.'不存在,請檢查文件名及路徑是否填寫正確';
}
}else{
echo '圖片'.$this->path.$name.'不存在,請檢查文件名及路徑是否填寫正確';
}
}
//輔助圖片處理,獲取水印圖片應處坐標
private function getPosition($info,$winfo){
if($info['width']<$winfo['width']||$info['height']<$winfo['height']){
return false;
}
$x=$info['width']-$winfo['width'];
$y=$info['height']-$winfo['height'];
return array('x'=>$x,'y'=>$y);
}
/**
* 圖片剪切函數
* 對應參數:原圖片 X坐標 Y坐標 寬度 高度
*/
function cut($name,$x,$y,$width,$height,$pre='cx_'){
$imgInfo=$this->getInfo($name);
$img=$this->getImg($name,$imgInfo);
$newImg=imagecreatetruecolor($width,$height);
imageresampled($newImg,$img,0,0,$x,$y,$width,$height,$width,$height);
return $this->createNewImage($newImg, $pre.$name, $imgInfo);
}

}

Ⅶ php怎麼給這個圖片添加日期和定位的水印

使用HTML 的Canvas畫圖功能,把你的原圖片作為背景圖,然後你根據情況在某個位置添加日期還有定位水印,然後再合成一張新的圖片,生成到指定位置。希望能幫到你!

Ⅷ 誰有能用的php給圖片加文字水印,最好有使用方法,注意:一定是能用的,功能強不強大另說

<?php

/*PHP圖片加文字水印類庫

QQ:3697578482 傷心的歌

該類庫暫時只支持文字水印,位置為右下角,顏色隨機

調用方法:
1、在需要加水印的文件頂部引入類庫:
include_once 'imageClass.php';
2、聲明新類:
$tpl=new image_fu;
3、給圖片水印提供參數:
$tpl->img(圖片路徑,水印文字,字體路徑,字體大小,字體角度);
比如:$tpl->img('abc.jpg','這是水印文字','ziti.ttf',30,0)

*/

class image_fu{

private $image;
private $img_info;
private $img_width;
private $img_height;
private $img_im;
private $img_text;
private $img_ttf='';
private $img_new;
private $img_text_size;
private $img_jd;

function img($img='',$txt='',$ttf='',$size=12,$jiao=0){
if(isset($img)&&file_exists($img)){//檢測圖片是否存在
$this->image =$img;
$this->img_text=$txt;
$this->img_text_size=$size;
$this->img_jd=$jiao;
if(file_exists($ttf)){
$this->img_ttf=$ttf;
}else{
exit('字體文件:'.$ttf.'不存在!');
}
$this->imgyesno();
}else{
exit('圖片文件:'.$img.'不存在');
}
}

private function imgyesno(){

$this->img_info =getimagesize($this->image);
$this->img_width =$this->img_info[0];//圖片寬
$this->img_height=$this->img_info[1];//圖片高

//檢測圖片類型
switch($this->img_info[2]){
case 1:$this->img_im = imagecreatefromgif($this->image);break;
case 2:$this->img_im = imagecreatefromjpeg($this->image);break;
case 3:$this->img_im = imagecreatefrompng($this->image);break;
default:exit('圖片格式不支持水印');
}

$this->img_text();
}

private function img_text(){

imagealphablending($this->img_im,true);

//設定顏色
$color=imagecolorallocate($this->img_im,rand(0,255),rand(0,255),rand(0,255));
$txt_height=$this->img_text_size;
$txt_jiao=$this->img_jd;
$ttf_im=imagettfbbox($txt_height,$txt_jiao,$this->img_ttf,$this->img_text);
$w = $ttf_im[2] - $ttf_im[6];
$h = $ttf_im[3] - $ttf_im[7];
//$w = $ttf_im[7];
//$h = $ttf_im[8];

unset($ttf_im);

$txt_y =$this->img_height-$h;
$txt_x =$this->img_width-$w;
//$txt_y =0;
//$txt_x =0;

$this->img_new=@imagettftext($this->img_im,$txt_height,$txt_jiao,$txt_x,$txt_y,$color,$this->img_ttf,$this->img_text);

@unlink($this->image);//刪除圖片
switch($this->img_info[2]) {//取得背景圖片的格式
case 1:imagegif($this->img_im,$this->image);break;
case 2:imagejpeg($this->img_im,$this->image);break;
case 3:imagepng($this->img_im,$this->image);break;
default: exit('水印圖片失敗');
}

}

//顯示圖片
function img_show(){echo '<img src="'.$this->image.'" border="0" alt="'.$this->img_text.'" />';}

//釋放內存
private function img_nothing(){
unset($this->img_info);
imagedestroy($this->img_im);
}

}

?>

Ⅸ 請問php中怎麼給照片加水印,時間和定位地址

水印要啟用gd庫,如果你用框架的話按照裡面調用方法就行,定位則需要第三方API服務,比如網路地圖等

Ⅹ php 圖片添加logo水印

imagealphablending()函數 配合 image()可達到去掉背景顏色的效果

註:水印本身必須是 透明底色的png格式

下圖為實際效果圖:

熱點內容
資料庫的根本目標 發布:2025-07-18 21:37:50 瀏覽:937
壓縮機的流速 發布:2025-07-18 21:37:40 瀏覽:406
三星怎麼取消手機密碼 發布:2025-07-18 21:33:50 瀏覽:629
安卓手機耳機如何彈窗顯示電量 發布:2025-07-18 21:20:53 瀏覽:59
雲伺服器搭建需要什麼工具 發布:2025-07-18 20:51:08 瀏覽:322
如何提高手機緩存速度 發布:2025-07-18 20:24:48 瀏覽:237
vba讀取資料庫數據 發布:2025-07-18 20:24:48 瀏覽:608
shell解壓zip 發布:2025-07-18 20:20:36 瀏覽:859
安卓泰拉瑞亞去哪裡買 發布:2025-07-18 20:01:05 瀏覽:694
flash編譯器 發布:2025-07-18 19:49:38 瀏覽:487