成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > PHP添加PNG圖片背景透明水印操作類定義與用法示例

PHP添加PNG圖片背景透明水印操作類定義與用法示例

熱門標(biāo)簽:芒果電銷機器人 上海公司外呼系統(tǒng)線路 地圖標(biāo)注風(fēng)向標(biāo) 浙江外呼電話系統(tǒng)軟件 電梯外呼線路板維修視頻 安陽自動外呼系統(tǒng)價格是多少 臨沂智能電銷機器人軟件 銀川ai電話機器人 十堰ai電話機器人效果怎么樣

本文實例講述了PHP添加PNG圖片背景透明水印操作類定義與用法。分享給大家供大家參考,具體如下:

圖片相關(guān)操作類

class ImageTool
{
  private $imagePath;//圖片路徑
  private $outputDir;//輸出文件夾
  public $memoryImg;//內(nèi)存圖像
  public $path;
  public function __construct($imagePath, $outputDir = null)
  {
    $this->imagePath = $imagePath;
    $this->outputDir = $outputDir;
    $this->memoryImg = null;
    $this->path = null;
  }
  /**
   * 顯示內(nèi)存中的圖片
   * @param $image
   */
  public function showImage()
  {
    if ($this->memoryImg != null) {
      $info = getimagesize($this->imagePath);
      $type = image_type_to_extension($info[2], false);
      header('Content-type:' . $info['mime']);
      $funs = "image{$type}";
      $funs($this->memoryImg);
      imagedestroy($this->memoryImg);
      $this->memoryImg = null;
    }
  }
  /**
   * 保存圖片
   * @param $image  圖片路徑
   * @return string
   */
  private function saveImage($image)
  {
    $info = getimagesize($this->imagePath);
    $type = image_type_to_extension($info[2], false);
    $funs = "image{$type}";
    if (empty($this->outputDir)) {
      $funs($image, md5($this->imagePath) . '.' . $type);
      return md5($this->imagePath) . '.' . $type;
    } else {
      $funs($image, $this->outputDir . md5($this->imagePath) . '.' . $type);
      return $this->outputDir . md5($this->imagePath) . '.' . $type;
    }
  }
  /**
   * 壓縮圖片
   * @param $width 壓縮后寬度
   * @param $height 壓縮后高度
   * @param bool $output 是否輸出文件
   * @return resource
   */
  public function compressImage($width, $height, $output = false)
  {
    $image = null;
    $info = getimagesize($this->imagePath);
    $type = image_type_to_extension($info[2], false);
    $fun = "imagecreatefrom{$type}";
    $image = $fun($this->imagePath);
    imagesavealpha($image,true);//
    $thumbnail = imagecreatetruecolor($width, $height);
    imagealphablending($thumbnail,false);//這里很重要,意思是不合并顏色,直接用$img圖像顏色替換,包括透明色;
    imagesavealpha($thumbnail,true);//
    imagecopyresampled($thumbnail, $image, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);
    imagedestroy($image);
    if ($output) {
      $path = $this->saveImage($thumbnail);
      $this->path = $path;
    }
    $this->memoryImg = $thumbnail;
    return $this;
  }
  /**
   * 為圖像添加文字標(biāo)記
   *
   * @param $content 文本內(nèi)容
   * @param $size 字體大小
   * @param $font 字體樣式
   * @param bool $output 是否輸出文件
   * @return $this
   */
  public function addTextmark($content, $size, $font, $output = false)
  {
    $info = getimagesize($this->imagePath);
    $type = image_type_to_extension($info[2], false);
    $fun = "imagecreatefrom{$type}";
    $image = $fun($this->imagePath);
    $color = imagecolorallocatealpha($image, 0, 0, 0, 80);
    $posX = imagesx($image) - strlen($content) * $size / 2;
    $posY = imagesy($image) - $size / 1.5;
    imagettftext($image, $size, 0, $posX, $posY, $color, $font, $content);
    if ($output) {
      $this->saveImage($image);
    }
    $this->memoryImg = $image;
    return $this;
  }
  /**
   * 為圖片添加水印
   *
   * @param $watermark 水印圖片路徑
   * @param $alpha 水印透明度(0-100)
   * @param bool $output 是否輸出文件
   * @return $this
   */
  public function addWatermark($watermark, $alpha, $output = false)
  {
    $image_info = getimagesize($this->imagePath);
    $image_type = image_type_to_extension($image_info[2], false);
    $image_fun = "imagecreatefrom{$image_type}";
    $image = $image_fun($this->imagePath);
    $mark_info = getimagesize($watermark);
    $mark_type = image_type_to_extension($mark_info[2], false);
    $mark_fun = "imagecreatefrom{$mark_type}";
    $mark = $mark_fun($watermark);
    $posX = imagesx($image) - imagesx($mark);
    $posY = imagesy($image) - imagesy($mark);
    imagesavealpha($mark, true);
    imagecopymerge($image, $mark, $posX, $posY, 0, 0, $mark_info[0], $mark_info[1], $alpha);
    imagesavealpha($mark, true);
    if ($output) {
      $path = $this->saveImage($image);
      $this->path = $path;
    }
    $this->memoryImg = $image;
    return $this;
  }
  //用給定角度旋轉(zhuǎn)圖像,以jpeg圖像格式為例
  /**
   * 水印圖片旋轉(zhuǎn)
   * @param $degrees     旋轉(zhuǎn)角度
   * @param bool $output   是否保存圖片
   * @return $this
   */
  function rotateImage($degrees, $output = false)
  {
    $info = getimagesize($this->imagePath);
    $type = image_type_to_extension($info[2], false);
    $fun = "imagecreatefrom{$type}";
    $image = $fun($this->imagePath);
    $block = imagecreatetruecolor(170,170);//建立一個畫板
    $bg = imagecolorallocatealpha($block , 0 , 0 , 0 , 127);//拾取一個完全透明的顏色
    $image = imagerotate($image, $degrees, $bg ,0);
    imagesavealpha($image, true);
    header("Content-type: image/{$type}");
    //旋轉(zhuǎn)后的圖片保存
    if ($output) {
      $path = $this->saveImage($image);
      $this->path = $path;
    }
    $this->memoryImg = $image;
    return $this;
  }
  /**
  * 添加PNG透明圖片
  * $bigImgPath 目標(biāo)圖片路徑
  * $smallImgPath 水印圖片路徑
  * $width 相對于目標(biāo)圖的x軸放置位置 左上角為 0
  * $height 相對于目標(biāo)圖的y軸放置位置 左上角為0
  * $bigImgPaths 合成后的圖片路徑 若路徑名與第一張或第二張路徑相同 直接覆蓋原圖
  */
  public function mergerImg($bigImgPath, $smallImgPath, $width, $height, $bigImgPaths)
  {
    $image_kuang = imagecreatefromstring(file_get_contents($smallImgPath));
    $image_photo = imagecreatefromstring(file_get_contents($bigImgPath));
    //創(chuàng)建一個新的,和大圖一樣大的畫布
    $image_3 = imageCreatetruecolor(imagesx($image_photo), imagesy($image_photo));
    //為真彩色畫布創(chuàng)建白色背景,再設(shè)置為透明
    $color = imagecolorallocate($image_3, 255, 255, 255);
    imagefill($image_3, 0, 0, $color);
    imageColorTransparent($image_3, $color);
    /**
     * 先copy圖片,再copy畫框,實現(xiàn)png的透明效果,將圖片嵌入到畫框里
     * imagecopymerge與imagecopy的不同:
     * imagecopymerge 函數(shù)可以支持兩個圖像疊加時,設(shè)置疊加層的透明度。imagecopymerge比imagecopy多一個參數(shù),來設(shè)置透明度
     * PHP內(nèi)部源碼里,imagecopymerge在透明度參數(shù)為100時,直接調(diào)用imagecopy函數(shù)。
     * imagecopy 函數(shù)則不支持疊加透明,但拷貝時可以保留png圖像的原透明信息,而imagecopymerge卻不支持圖片的本身的透明拷貝
     * 即:使用imagecopymerge函數(shù),可以實現(xiàn)打上透明度為30%的淡淡的水印圖標(biāo),但圖片本身的png就會變得像IE6不支持png透明那樣,背景不透明了。
     * 如果使用imagecopy函數(shù),可以保留圖片本身的透明信息,但無法實現(xiàn)30%的淡淡水印疊加,
     */
   imagecopyresampled($image_3,$image_photo,0,0,0,0,imagesx($image_photo),imagesy($image_photo),imagesx($image_photo),imagesy($image_photo));
    imagecopy($image_3,$image_kuang, $width,$height,0,0,imagesx($image_kuang),imagesy($image_kuang));
    //存儲圖片路徑
    imagejpeg($image_3, $bigImgPaths);
    return $bigImgPaths;
  }
}

控制器調(diào)用方法

public function test()
{
  $bigImgPath = 'ren.jpg';//原圖路徑
  $waterImgPath = 'tae.png';//水印圖路徑
  $imageTool = new ImageTool($waterImgPath, 'tmp/');//圖片路徑、輸出文件夾
  $smallImgPath = $imageTool->rotateImage(45, true)->path;//旋轉(zhuǎn)
  $width = 0;//水印所在X坐標(biāo)
  $height = 0;//水印所在Y坐標(biāo)
  $bigImgPaths = 'new.png';//生成原圖加水印新圖路徑
  $path = $this->mergerImg($bigImgPath, $smallImgPath, $width, $height, $bigImgPaths);
  return view('image', compact('path'));
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《PHP數(shù)學(xué)運算技巧總結(jié)》、《php字符串(string)用法總結(jié)》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家PHP程序設(shè)計有所幫助。

您可能感興趣的文章:
  • PHP簡單實現(xiàn)圖片格式轉(zhuǎn)換(jpg轉(zhuǎn)png,gif轉(zhuǎn)png等)
  • PHP中使用Imagick讀取pdf并生成png縮略圖實例
  • PHP使用imagick讀取PDF生成png縮略圖的兩種方法
  • PHP輸出圖像imagegif、imagejpeg與imagepng函數(shù)用法分析
  • php縮放gif和png圖透明背景變成黑色的解決方法
  • PHP實現(xiàn)生成透明背景的PNG縮略圖函數(shù)分享
  • PHP基于GD庫的縮略圖生成代碼(支持jpg,gif,png格式)
  • php 處理png圖片白色背景色改為透明色的實例代碼
  • PHP實現(xiàn)對png圖像進行縮放的方法(支持透明背景)
  • 支持png透明圖片的php生成縮略圖類分享
  • php 實現(xiàn)svg轉(zhuǎn)化png格式的方法分析

標(biāo)簽:荊門 武威 常州 吐魯番 徐州 遵義 寧夏 遂寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP添加PNG圖片背景透明水印操作類定義與用法示例》,本文關(guān)鍵詞  PHP,添加,PNG,圖片,背景,透明,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP添加PNG圖片背景透明水印操作類定義與用法示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP添加PNG圖片背景透明水印操作類定義與用法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产一区二区伦理片| 在线a欧美视频| 日本一区网站| 亚洲国产欧美日本视频| 麻豆影视国产在线观看| 日本jizzjizz| 青草国产精品久久久久久| 国产成人免费观看视频| 中文字幕乱码在线人视频| 88在线观看91蜜桃国自产| 热久久免费国产视频| 色综合久久五月| 中文字幕免费高清电视剧网站在线观看| 秋霞国产午夜精品免费视频| 偷拍自拍亚洲色图| 欧美又粗又硬又大久久久| 亚洲第一久久影院| 人人澡人人爽人人揉| 亚洲精品国产日韩| 97在线观看视频免费| 三上悠亚在线一区二区| 亚洲av毛片在线观看| 9色porny自拍视频一区二区| 一个人看的www日本高清视频| 3atv在线一区二区三区| 欧美 日韩 国产 高清| 综合 欧美 亚洲日本| 一区二区三区美女xx视频| 亚洲国产精品免费在线观看| 欧美一区二区三区色| 国产精品无码永久免费不卡| 久久在精品线影院精品国产| 国产成人无码一区二区在线播放| 极品少妇xxxx偷拍精品少妇| 国产精品九九九九九| 久久夜精品香蕉| 欧美一级电影网站| 免费高清视频在线一区| 91影院未满十八岁禁止入内| 首页国产欧美久久| 国产91精品入| 欧美天堂亚洲电影院在线播放| 91浏览器在线观看| 久99久在线| 色婷婷久久av| 国模吧一区二区| 欧美日韩在线观看一区二区| 国产精品18久久久久网站| 中文字幕2022永久在线| 日韩精品欧美在线| 九九视频精品在线观看| 欧美日韩一本| 德国性xxxx| 日韩母乳在线| 91精品国产丝袜白色高跟鞋| 亚洲电影激情视频网站| 3d黄动漫网站| 国产原创在线视频| 在线播放成人av| 国产毛片一区二区三区va在线| www.国产高清| 国产成人短视频在线观看| 成人看片在线观看| 国产对白国语对白| 麻豆精品一区| 狠狠色丁香久久综合频道| 天堂精品高清1区2区3区| 色先锋资源网| 男人日女人bb视频| 中文字幕免费在线观看| 特一级黄色片| 国产激情一区二区三区在线观看| 影音先锋国产在线资源| 免费午夜视频在线观看| 成年人视频网站| 首页欧美精品中文字幕| 国产高清精品一区二区三区| 国产成人在线一区二区| 中文在线免费观看| 97国产成人高清在线观看| 欧美视频精品在线观看| 视频一区二区三区在线| 日韩av片永久免费网站| 亚洲人体av| 国产免费一区二区三区香蕉精| 亚洲一级黄色大片| 天堂中文在线观看视频| 无码一区二区三区在线| 欧美调教视频| 欧美激情一区二区三区在线视频| 成人综合一区| 国产女主播自拍| 欧美激情在线有限公司| 亚洲av色香蕉一区二区三区| 亚洲免费高清视频| 一区二区亚洲视频| 毛片av免费观看| 玖玖在线播放| 国产乱淫a∨片免费观看| 夜夜爽夜夜爽精品视频| 99色这里只有精品| 亚洲天堂网2018| 亚洲午夜精品久久久久久人妖| 国产一级二级视频| 羞羞答答成人影院www| 午夜精品久久久久久久蜜桃| 国产精品香蕉一区二区三区| 国产91精品在线| 欧美日韩国产综合视频在线| 黄污网站在线观看| 桃乃木香奈和黑人aⅴ在线播放| 亚洲国产中文字幕在线| 久久久久国产美女免费网站| 成人午夜在线影院| 日本孕妇大胆孕交无码| 精品中文字幕在线播放| 91精品国产自产在线观看永久| 国产精品久久久久久久小唯西川| 欧美国产日产图区| youjizz.com日本| aa日韩免费精品视频一| 欧美理论视频| 日日噜噜噜夜夜爽爽| 欧美日韩国产综合新一区| 日本黄色片在线播放| 日韩免费福利视频| 成人女人免费毛片| 日韩少妇内射免费播放18禁裸乳| 欧美在线观看www| 青青青青草视频| 日本在线看片免费人成视1000| 久久精品国产综合| 看看黄色一级片| 欧美成年黄网站色视频| 成人国产精品久久久网站| 亚州一区二区三区| 91麻豆精品一二三区在线| 91国产高清在线| 美女视频黄久久| 亚洲综合区在线| 色一情一乱一伦| 欧美性猛交xxxxx少妇| 日本在线播放一二三区| 国偷自产av一区二区三区小尤奈| 少妇又色又爽又黄的视频| 国产三级在线看| 中文字幕一区二区三区乱码图片| 老熟妇精品一区二区三区| 91国在线高清视频| 九九大香尹人视频免费| 亚洲精品资源美女情侣酒店| 久久精品国产www456c0m| 亚洲美女电影在线| 国产91在线免费观看| 亚洲人成免费| 中文字幕一区二区三区精彩视频| 日韩免费黄色片| 亚洲美女精品视频| 欧美日韩一级片网站| 影音先锋中文一区| 看av免费毛片手机播放| 一区二区三区精品久久久| 四虎影院成人在线观看| 日韩电影大全网站| 国产精品成人播放| 亚洲精品av在线播放| 欧美1区二区三区公司| 日本黄色免费| 亚洲精品一二三四五区| 色婷婷一区二区三区在线观看| 黄色电影网站在线观看| 电影午夜精品一区二区三区| 欧美专区在线视频| 大奶一区二区三区| 乱人伦中文视频在线| 亚洲网站情趣视频| 少妇精品久久久久久久久久| 综合久久综合久久| 911美女片黄在线观看游戏| 国产精品视频免费在线| 中文字幕精品在线视频| 青青草视频在线免费播放| 亚洲久草在线| 久久久久久久久久福利| 成人在线一区| 欧美xxbbb1手交| 亚洲精品二三区| 国产乱视频在线观看| 久久久久久亚洲中文字幕无码| 天天摸天天碰天天添| 国产免费高清| 99久久精品一区二区| 高潮毛片7777777毛片| 免费全黄无遮挡裸体毛片| 欧美日韩精品一区二区三区视频播放| 国产一级黄色| 亚洲人精品午夜在线观看| www.国产黄色| 黄色网在线免费观看| 亚洲精品鲁一鲁一区二区三区| 首页综合国产亚洲丝袜| 日韩欧美aaaaaa| 色视频精品视频在线观看| 欧美日韩一二三四五区| 亚洲 欧美 自拍偷拍| 91国产精品视频在线观看| 国产一区二区三区三州| 国产视频不卡在线| 免费日韩精品中文字幕视频在线| 亚洲av毛片基地| 亚洲色图另类图片| 国产综合精品| 韩国日本美国免费毛片| 久久久久国产成人精品亚洲午夜| 欧美亚洲一二三区| 亚洲一区 二区| 国产香蕉精品视频一区二区三区| 污片在线免费看| 国产视频在线观看免费| 日本一区二区视频在线播放| 欧美另类精品xxxx孕妇| 韩国三级av在线免费观看| 男人j进女人j| 少妇高潮一区二区三区99| 91成人抖音| 欧美激情网站在线观看| 欧美高清你懂的| 国产精品久久久久精k8| 国产精品久久久久av福利动漫| 波多野结衣在线高清| 中文字幕免费观看视频| 日韩中文字幕国产| 免费永久视频| 高清国产免费| 国产精品久久久久久久久久久免费看| 香蕉视频网站入口| 欧美毛片在线观看| 一区二区三区日韩在线观看| 国产精品成人免费电影| 福利在线小视频| 在线免费观看视频一区| 亚洲精品视频在线免费| а√天堂中文在线资源8| 亚洲综合色网| 永久免费看mv网站入口亚洲| 日韩大胆人体| 久久久久久久久电影| 网红女主播少妇精品视频| 真实国产乱子伦精品一区二区三区| 在线精品视频一区二区| ww亚洲ww在线观看国产| 欧美13一16娇小xxxx| 国产一区三区在线播放| 精品日韩一区二区三区| 欧美韩国日本精品一区二区三区| 中文字幕在线1| 俺去俺来也在线www色官网| 欧美精选视频一区二区| 国产精品免费看| chinesespank调教| 午夜一区二区三区不卡视频| 欧美精品久久久久久久久久丰满| 成人在线免费在线观看| 三年中国中文在线观看免费播放| 夜夜嗨av色一区二区不卡| 亚洲少妇中文字幕| 九一国产精品视频| 97精品国产97久久久久久免费| 91午夜视频在线观看| 亚洲乱码日产精品bd在线观看| 久久久久久久久久码影片| 五福影院新址进入www1378| 免费人成a大片在线观看动漫| 欧美一区二区三区爽大粗免费| 久久精品99无色码中文字幕| 性欧美videos| 国产精品视频在线观看免费| 中文字幕精品一区二区精品| 亚洲熟妇av日韩熟妇在线| 国产精品a成v人在线播放| 欧美成年人视频| 一区二区三区激情| 啦啦啦中文在线观看日本| 日韩欧美电影在线观看| 久久99国产精品久久99小说| 欧美+亚洲+精品+三区| 天天影视色香欲综合| 欧美大片在线观看一区| 在线观看免费视频综合| 91精品在线视频观看| 久久99日本精品| 99久久婷婷国产综合精品电影√| 国产精品卡一卡二卡三| 日韩日本欧美亚洲| 97视频免费观看| 国产美女久久| 国产福利电影| 久久蜜桃av一区二区天堂| 日韩一区中文字幕| 国产调教精品| 国产黄色片在线播放| 亚洲精品97久久久babes| 精品www久久久久奶水| 91国产成人在线| 欧美无人区码suv| 国产精品入口尤物| 黄色片中文字幕| 少妇高潮久久久久久潘金莲| 国产农村老头老太视频| 91综合国产| 久久久久久国产视频| 美女福利一区| 久久久久亚洲av成人网人人软件| 999在线精品| 欧美精品午夜| 国产大奶视频| 欧美高清视频一区二区| 日韩亚洲在线观看| 日韩欧乱色一区二区三区在线| 欧美jizz18hd性欧美| 亚洲风情第一页| 欧美怡红院视频| 欧美91福利在线观看| 人人妻人人澡人人爽| 欧美午夜电影在线| 亚洲人成网7777777国产| 小早川怜子久久精品中文字幕| 五月天色婷婷丁香|