亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php給圖片添加文字水印的4種方法

2020-03-24 18:12:04
字體:
來源:轉載
供稿:網友
本篇文章主要介紹php給圖片添加文字水印的4種方法,感興趣的朋友參考下,希望對大家有所幫助。

1: 面向過程的編寫方法

//指定圖片路徑$src = '001.png';//獲取圖片信息$info = getimagesize($src);//獲取圖片擴展名$type = image_type_to_extension($info[2],false);//動態的把圖片導入內存中$fun = "imagecreatefrom{$type}";$image = $fun('001.png');//指定字體顏色$col = imagecolorallocatealpha($image,255,255,255,50);//指定字體內容$content = 'helloworld';//給圖片添加文字imagestring($image,5,20,30,$content,$col);//指定輸入類型header('Content-type:'.$info['mime']);//動態的輸出圖片到瀏覽器中$func = "image{$type}";$func($image);//銷毀圖片imagedestroy($image);

2:html' target='_blank'>面向對象的實現方法

class Image_class {  private $image;  private $info;  /**   * @param $src:圖片路徑   * 加載圖片到內存中   */  function __construct($src){    $info = getimagesize($src);    $type = image_type_to_extension($info[2],false);    $this -> info =$info;    $this->info['type'] = $type;    $fun = "imagecreatefrom" .$type;    $this -> image = $fun($src);  }  /**   * @param $fontsize: 字體大小   * @param $x: 字體在圖片中的x位置   * @param $y: 字體在圖片中的y位置   * @param $color: 字體的顏色是一個包含rgba的數組   * @param $text: 想要添加的內容   * 操作內存中的圖片,給圖片添加文字水印   */  public function fontMark($fontsize,$x,$y,$color,$text){    $col = imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]);    imagestring($this->image,$fontsize,$x,$y,$text,$col);  }  /*   * 輸出圖片到瀏覽器中   */  public function show(){    header('content-type:' . $this -> info['mime']);    $fun='image' . $this->info['type'];    $fun($this->image);  }  /**   * 銷毀圖片   */  function __destruct(){    imagedestroy($this->image);  }}//對類的調用$obj = new Image_class('001.png');$obj->fontMark(20,20,30,array(255,255,255,60),'hello');$obj->show();

3.支持以圖片和文字兩種方式給圖片添加水印。圖片支持GIF,PNG,JPG三種格式,水印圖片支持PNG和GIF

function setWater($imgSrc,$markImg,$markText,$TextColor,$markPos,$fontType,$markType){  $srcInfo = @getimagesize($imgSrc);  $srcImg_w  = $srcInfo[0];  $srcImg_h  = $srcInfo[1];      switch ($srcInfo[2])   {     case 1:       $srcim =imagecreatefromgif($imgSrc);       break;     case 2:       $srcim =imagecreatefromjpeg($imgSrc);       break;     case 3:       $srcim =imagecreatefrompng($imgSrc);       break;     default:       die("不支持的圖片文件類型");       exit;   }      if(!strcmp($markType,"img"))  {    if(!file_exists($markImg) || empty($markImg))    {      return;    }          $markImgInfo = @getimagesize($markImg);    $markImg_w  = $markImgInfo[0];    $markImg_h  = $markImgInfo[1];          if($srcImg_w < $markImg_w || $srcImg_h < $markImg_h)    {      return;    }          switch ($markImgInfo[2])     {       case 1:         $markim =imagecreatefromgif($markImg);         break;       case 2:         $markim =imagecreatefromjpeg($markImg);         break;       case 3:         $markim =imagecreatefrompng($markImg);         break;       default:         die("不支持的水印圖片文件類型");         exit;     }          $logow = $markImg_w;    $logoh = $markImg_h;  }      if(!strcmp($markType,"text"))  {    $fontSize = 16;    if(!empty($markText))    {      if(!file_exists($fontType))      {        return;      }    }    else {      return;    }          $box = @imagettfbbox($fontSize, 0, $fontType,$markText);    $logow = max($box[2], $box[4]) - min($box[0], $box[6]);    $logoh = max($box[1], $box[3]) - min($box[5], $box[7]);  }      if($markPos == 0)  {    $markPos = rand(1, 9);  }      switch($markPos)  {    case 1:      $x = +5;      $y = +5;      break;    case 2:      $x = ($srcImg_w - $logow) / 2;      $y = +5;      break;    case 3:      $x = $srcImg_w - $logow - 5;      $y = +15;      break;    case 4:      $x = +5;      $y = ($srcImg_h - $logoh) / 2;      break;    case 5:      $x = ($srcImg_w - $logow) / 2;      $y = ($srcImg_h - $logoh) / 2;      break;    case 6:      $x = $srcImg_w - $logow - 5;      $y = ($srcImg_h - $logoh) / 2;      break;    case 7:      $x = +5;      $y = $srcImg_h - $logoh - 5;      break;    case 8:      $x = ($srcImg_w - $logow) / 2;      $y = $srcImg_h - $logoh - 5;      break;    case 9:      $x = $srcImg_w - $logow - 5;      $y = $srcImg_h - $logoh -5;      break;    default:       die("此位置不支持");       exit;  }      $dst_img = @imagecreatetruecolor($srcImg_w, $srcImg_h);      imagecopy ( $dst_img, $srcim, 0, 0, 0, 0, $srcImg_w, $srcImg_h);      if(!strcmp($markType,"img"))  {    imagecopy($dst_img, $markim, $x, $y, 0, 0, $logow, $logoh);    imagedestroy($markim);  }      if(!strcmp($markType,"text"))  {    $rgb = explode(',', $TextColor);          $color = imagecolorallocate($dst_img, $rgb[0], $rgb[1], $rgb[2]);    imagettftext($dst_img, $fontSize, 0, $x, $y, $color, $fontType,$markText);  }      switch ($srcInfo[2])   {     case 1:      imagegif($dst_img, $imgSrc);       break;     case 2:       imagejpeg($dst_img, $imgSrc);       break;     case 3:       imagepng($dst_img, $imgSrc);       break;    default:       die("不支持的水印圖片文件類型");       exit;   }      imagedestroy($dst_img);  imagedestroy($srcim);}

參數說明:

$imgSrc:目標圖片,可帶相對目錄地址,
$markImg:水印圖片,可帶相對目錄地址,支持PNG和GIF兩種格式,如水印圖片在執行文件mark目錄下,可寫成:mark/mark.gif
$markText:給圖片添加的水印文字
$TextColor:水印文字的字體顏色
$markPos:圖片水印添加的位置,取值范圍:0~9
0:隨機位置,在1~8之間隨機選取一個位置
1:頂部居左 2:頂部居中 3:頂部居右 4:左邊居中
5:圖片中心 6:右邊居中 7:底部居左 8:底部居中 9:底部居右
$fontType:具體的字體庫,可帶相對目錄地址
$markType:圖片添加水印的方式,img代表以圖片方式,text代表以文字方式添加水印

4.給圖片加文字水印的方法

<?php/*給圖片加文字水印的方法*/$dst_path = 'http://f4.topitme.com/4/15/11/1166351597fe111154l.jpg';$dst = imagecreatefromstring(file_get_contents($dst_path));/*imagecreatefromstring()--從字符串中的圖像流新建一個圖像,返回一個圖像標示符,其表達了從給定字符串得來的圖像圖像格式將自動監測,只要php支持jpeg,png,gif,wbmp,gd2.*/ $font = './t1.ttf';$black = imagecolorallocate($dst, 0, 0, 0);imagefttext($dst, 20, 0, 10, 30, $black, $font, 'Hello world!');/*imagefttext($img,$size,$angle,$x,$y,$color,$fontfile,$text)$img由圖像創建函數返回的圖像資源size要使用的水印的字體大小angle(角度)文字的傾斜角度,如果是0度代表文字從左往右,如果是90度代表從上往下x,y水印文字的第一個文字的起始位置color是水印文字的顏色fontfile,你希望使用truetype字體的路徑*/list($dst_w,$dst_h,$dst_type) = getimagesize($dst_path);/*list(mixed $varname[,mixed $......])--把數組中的值賦給一些變量像array()一樣,這不是真正的函數,而是語言結構,List()用一步操作給一組變量進行賦值*//*getimagesize()能獲取到什么信息?getimagesize函數會返回圖像的所有信息,包括大小,類型等等*/switch($dst_type){  case 1://GIF    header("content-type:image/gif");    imagegif($dst);    break;  case 2://JPG    header("content-type:image/jpeg");    imagejpeg($dst);    break;  case 3://PNG    header("content-type:image/png");    imagepng($dst);    break;  default:    break;  /*imagepng--以PNG格式將圖像輸出到瀏覽器或文件  imagepng()將GD圖像流(image)以png格式輸出到標注輸出(通常為瀏覽器),或者如果用filename給出了文件名則將其輸出到文件*/}imagedestroy($dst);?>

總結:以上就是本篇文的全部內容,希望能對大家的學習有所幫助。

相關推薦:

PHP實現在線計算器功能

PHP如何實現騰訊與百度坐標轉換

PHP+JavaScript實現Cookie的讀寫、交互操作方法詳解

以上就是php給圖片添加文字水印的4種方法的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性xxxx极品高清hd直播| 最近2019中文字幕一页二页| 国产精品扒开腿做爽爽爽的视频| 另类视频在线观看| 国产精品视频一区国模私拍| 91久久久国产精品| 欧美黑人狂野猛交老妇| 国产精品99久久久久久久久久久久| 北条麻妃99精品青青久久| 欧美日韩一区二区在线播放| 欧美视频13p| 日韩电影中文 亚洲精品乱码| 国产精品va在线播放我和闺蜜| 日本亚洲欧洲色α| 91高清免费在线观看| 亚洲综合成人婷婷小说| 97在线视频免费| 69久久夜色精品国产69| 日韩欧美视频一区二区三区| 韩日欧美一区二区| 777午夜精品福利在线观看| 18性欧美xxxⅹ性满足| 久久久久久九九九| 国产精选久久久久久| 91丝袜美腿美女视频网站| 日韩成人中文字幕| 日韩欧美中文字幕在线播放| 日韩美女写真福利在线观看| 欧美性受xxxx黑人猛交| 欧美在线视频a| 日韩国产精品亚洲а∨天堂免| 亚洲第一页中文字幕| 欧美成年人在线观看| 国产精品www色诱视频| 国产精品爱久久久久久久| 国产一区二区三区三区在线观看| 狠狠色狠色综合曰曰| 97香蕉超级碰碰久久免费的优势| 51精品国产黑色丝袜高跟鞋| 国产成人精品视频在线观看| 亚洲第一区第一页| 午夜精品久久久99热福利| 国产精品自在线| 亚洲欧美日韩视频一区| 91成人性视频| 国产精品男人的天堂| 欧美激情一级精品国产| 国产精品第2页| 欧美成人免费网| 91国产一区在线| 亚洲一区中文字幕| 国产精品美女网站| 亚洲黄色在线观看| 国产精品中文字幕在线观看| 国产欧美一区二区三区在线| 97婷婷涩涩精品一区| 中文国产亚洲喷潮| 国产亚洲视频在线| 久久久日本电影| 国产精品一久久香蕉国产线看观看| 国产精品久久久久久久7电影| 亲爱的老师9免费观看全集电视剧| 91在线免费观看网站| 亚洲精品网站在线播放gif| 国产精品吊钟奶在线| 亚洲第一区第一页| 懂色av中文一区二区三区天美| 欧美精品videos另类日本| yw.139尤物在线精品视频| 久久九九国产精品怡红院| 久久成年人免费电影| 欧美日韩加勒比精品一区| 日韩美女免费线视频| 久久亚洲精品一区二区| 国产一区二区三区在线免费观看| 欧美日韩一区二区三区| 欧洲精品在线视频| 亚洲国产日韩欧美综合久久| 久久久精品国产网站| 久久久久久久999| 大量国产精品视频| 日韩精品在线观看一区| 欧美性xxxxhd| 精品国产999| 欧美性感美女h网站在线观看免费| 91欧美精品成人综合在线观看| 日韩专区在线播放| 久久天天躁狠狠躁夜夜躁| 亚洲天堂av在线免费| 91av在线播放视频| 中文字幕日韩精品在线| 欧美小视频在线| 国产精品美女视频网站| 欧美高清视频免费观看| 国产精品伦子伦免费视频| 国产精品极品美女在线观看免费| 亚洲国产精品久久久久久| 欧美性xxxxhd| 日韩欧美在线一区| 日韩美女在线观看一区| 欧美裸体xxxxx| 国产精品久久久久久久久免费| 欧美精品九九久久| 97福利一区二区| 久久成人精品视频| 九九热精品视频在线播放| 国产精品一香蕉国产线看观看| 国内免费久久久久久久久久久| 成人美女免费网站视频| 久久69精品久久久久久久电影好| 欧美激情日韩图片| 久久久999精品视频| 欧美精品久久久久久久| 91人人爽人人爽人人精88v| 91色琪琪电影亚洲精品久久| 中日韩美女免费视频网站在线观看| 国产丝袜一区二区三区| 69国产精品成人在线播放| 成人黄色大片在线免费观看| 久久九九亚洲综合| 成人性生交大片免费观看嘿嘿视频| 97高清免费视频| 欧美在线观看一区二区三区| 26uuu亚洲伊人春色| 国产精品三级久久久久久电影| 久久99精品久久久久久青青91| 亚洲精品视频中文字幕| 亚洲区免费影片| 亚洲精品福利免费在线观看| 欧美在线国产精品| 日韩在线视频线视频免费网站| 夜夜嗨av色综合久久久综合网| 久久久人成影片一区二区三区观看| 国产精品美女久久久久久免费| 亚洲一品av免费观看| 一本色道久久88综合亚洲精品ⅰ| www.日韩免费| 色天天综合狠狠色| 国产精品国产自产拍高清av水多| 久久免费视频在线| 日韩专区在线观看| 亚洲综合社区网| 91九色视频导航| 久久久精品一区二区三区| 国产精品自产拍在线观| 亚洲无限乱码一二三四麻| 精品久久久久久久久久ntr影视| 这里只有精品丝袜| 精品露脸国产偷人在视频| 欧美激情a∨在线视频播放| 欧美大片免费观看| 91精品久久久久久久久中文字幕| 亚洲а∨天堂久久精品9966| 亚洲精品视频中文字幕| 久久国产天堂福利天堂| 国产一区在线播放| 美女av一区二区三区| 亚洲精品免费一区二区三区| 欧美视频在线观看 亚洲欧| 亚洲国产中文字幕久久网| 亚洲精品电影在线观看| 日韩中文字幕不卡视频| 久久精品亚洲精品| 国产精品久久久久久久久久久久久久|