日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

基于PHP實(shí)現(xiàn)生成隨機(jī)水印圖片

瀏覽:153日期:2022-09-08 15:56:13

基于PHP的GD圖形庫(kù),自己生成一張圖片。僅限初識(shí)GD庫(kù),實(shí)例學(xué)習(xí)。

一、需求

網(wǎng)站的布局用到了類似慕課網(wǎng)課程列表的風(fēng)格,每一個(gè)課程是一個(gè)banner圖,圖下面是標(biāo)題加簡(jiǎn)介。因?yàn)檎n程的數(shù)量較大沒(méi)有為所有的課程設(shè)計(jì)專門的banner,所以需要按照一定的規(guī)則,來(lái)自己生成圖片(本打算用div布局來(lái)解決,但div+img在響應(yīng)式布局中不是很好控制)。

二、工具&素材

1.PHP開啟GD圖形庫(kù)擴(kuò)展

2.準(zhǔn)備多個(gè)小的水印圖

3.獲取預(yù)生成圖片的背景色RGB值

三、代碼

生成圖片的過(guò)程,代碼中做了詳細(xì)的注釋。

class GenerateRandomImage{ /** @var integer 圖片寬度 */ public $imgWidth = 272; /** @var integer 圖片高度 */ public $imgHeight = 162; /** @var 根據(jù)type不同來(lái)生成不同的背景顏色,目前留個(gè)type分別為藍(lán)色、紫色、黃色、綠色、灰色、土黃色 */ public $type = ’’; /** @var 圖片上要顯示的文字 */ public $text = ’’; /** @var integer 圖片上文字的字體大小 */ public $fontSize = 16; public function __construct($type, $text) { $this->type = $type; $this->text = $text; } /** * 創(chuàng)建生成隨機(jī)圖片 * @author bignerd * @since 2017-03-21T14:49:41+0800 */ public function createImg() { /** @var 創(chuàng)建一個(gè)指定圖片大小的空調(diào)色板 $image = imagecreate($this->imgWidth, $this->imgHeight); $rgb = $this->getBackground($this->type); /** @var 為圖片創(chuàng)建一個(gè)背景色 */ $backgroundColor = imagecolorallocate($image, $rgb[’r’], $rgb[’g’], $rgb[’b’]); /** @var 創(chuàng)建文字白色字體 */ $textColor = imagecolorallocate($image, 255, 255, 255); /** @var 字體文件路徑 */ $font = $_SERVER[’DOCUMENT_ROOT’].’/public/font/simhei.ttf’; $x = 18;//文字起始位置x坐標(biāo) $y = 50;//文字起始位置y坐標(biāo) /** 文字寫入圖片 */ $angle = 0;//角度0 imagettftext($image, $this->fontSize, $angle, $x, $y, $textColor, $font, $this->text); /** @var 水印圖片路徑 **/ $waterImgPath = $this->randWaterImage(); /** @var 獲取圖片信息,返回值$waterInfo[2] 為圖片類型常量 */ $waterInfo = getimagesize($waterImgPath); /** @var 將圖片類型常量轉(zhuǎn)換為真正的類型,如png */ $waterType = image_type_to_extension($waterInfo[2], false);//獲取文件類型 $createImageFunc = ’imagecreatefrom’.$waterType; /** @var 創(chuàng)建一個(gè)水印圖片的副本 $createImageFunc 為根據(jù)圖片類型來(lái)動(dòng)態(tài)生成預(yù)調(diào)用的創(chuàng)建圖片函數(shù)*/ $mask = $createImageFunc($waterImgPath); $posX = $this->imgWidth - $waterInfo[0];//水印圖片,在目標(biāo)圖片中的位置的x坐標(biāo) $posY = $this->imgHeight - $waterInfo[1];//水印圖片,在目標(biāo)圖片中的位置的y坐標(biāo) /** http請(qǐng)求響應(yīng)類型設(shè)置為 image/png 以便直接顯示為圖片 */ header('Content-Type:image/png'); /** 水印圖片復(fù)制到創(chuàng)建的image */ imagecopy($image, $mask, $posX, $posY, 0, 0, $waterInfo[0], $waterInfo[1]); imagepng($image);//輸入圖片到瀏覽器或者文件 imagedestroy($image);//銷毀圖片 } /** * 圖片背景顏色的rgb值 * @author bignerd * @since 2017-03-21T14:50:16+0800 */ public function getBackground() { $background = [ ’1’=>[’r’=>0, ’g’=>160,’b’=>233], ’2’=>[’r’=>198,’g’=>0, ’b’=>110], ’3’=>[’r’=>237,’g’=>109,’b’=>0], ’4’=>[’r’=>33, ’g’=>148,’b’=>75], ’5’=>[’r’=>63, ’g’=>58, ’b’=>57], ’6’=>[’r’=>202,’g’=>162,’b’=>101], ]; return $background[$this->type]; } /** * 隨機(jī)水印圖片路徑 * @author bignerd * @since 2017-03-21T14:51:00+0800 * @return 路徑 */ public function randWaterImage() { $folder = [ ’1’=>’product’,’2’=>’team’,’3’=>’architecture’,’4’=>’developer’,’5’=>’test’,’6’=>’engineer’ ]; $targetFolder = $_SERVER[’DOCUMENT_ROOT’].’/public/images/role/’.$folder[$this->type].’/’.rand(1,38).’.png’; return $targetFolder; }}$image = new GenerateRandomImage(1,'扛得住的MySql數(shù)據(jù)架構(gòu)');$image->createImg();

這樣我們就可以直接在頁(yè)面中使用 <img src='http://xxx.com/GenerateRandomImage.php' />來(lái)直接顯示圖片。

注意:過(guò)程中遇到過(guò)一個(gè)問(wèn)題:如果水印圖片是透明的png圖片,那將水印圖片復(fù)制到image中時(shí),會(huì)顯示為白色背景,與我們?cè)O(shè)定 的image背景無(wú)法透明融合,所以對(duì)隨機(jī)的水印圖片也需要做同樣的顏色處理。

四、總結(jié)

這個(gè)小示例用簡(jiǎn)單的步驟來(lái)生成一張圖片,直接顯示在瀏覽器,也可以給imagepng加第二參數(shù),也就是路徑,以保存圖片。所以學(xué)會(huì)示例中的幾個(gè)GD庫(kù)中的方法,就可以實(shí)現(xiàn)創(chuàng)建圖片、為圖片添加文字水印、或圖片水印。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: PHP
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
青青青免费在线视频| 久久国产视频网| 91亚洲国产成人久久精品| 国产精品亚洲人成在99www| 国产亚洲精品精品国产亚洲综合 | 合欧美一区二区三区| 美女网站一区| 亚洲激情av| 麻豆成人在线| 日本在线成人| 91精品在线免费视频| 国产一区导航| 亚洲精品极品少妇16p| 久久久精品久久久久久96| 国产一区二区三区免费在线| 久久男人av资源站| 日韩高清中文字幕一区二区| 国内亚洲精品| 国产午夜久久| 中文字幕乱码亚洲无线精品一区| 在线免费观看亚洲| 久久精品97| 国内精品麻豆美女在线播放视频| 麻豆mv在线观看| 国产一区日韩一区| 亚洲精品综合| 精品精品国产三级a∨在线| 免费观看不卡av| 中文字幕一区二区三区日韩精品 | 国产精品久久久久久av公交车| 久久精品网址| 999精品在线| 日韩在线麻豆| 国产精东传媒成人av电影| 国户精品久久久久久久久久久不卡| 国产精品99久久精品| av亚洲一区二区三区| 亚洲女人av| 国产精品一区二区美女视频免费看| 国产精品久久亚洲不卡| 精品欧美视频| 亚洲电影在线一区二区三区| 天堂久久av| 国产白浆在线免费观看| 国产精品老牛| 国产精品magnet| 99久久激情| 亚洲人成高清| 国产aⅴ精品一区二区三区久久| 蜜桃视频欧美| 国产日韩欧美一区二区三区在线观看| 中文字幕一区久| 亚洲97av| 精品久久久中文字幕| 夜夜嗨一区二区三区| 久久国际精品| 婷婷国产精品| 国产精品亚洲成在人线| 久久天堂成人| 欧美亚洲综合视频| 色综合www| 久久精品99久久久| 久久精品电影| 国产精品久久久久久久久久妞妞 | 国产激情久久| 欧美影院三区| 日本欧美一区二区| 精品久久福利| 久久香蕉精品| 国产黄大片在线观看| 日韩欧美中文字幕一区二区三区| 国产成人免费视频网站视频社区| 午夜国产精品视频| 蜜桃精品视频| 国产精品美女在线观看直播| 最新亚洲激情| 国产a亚洲精品| 午夜性色一区二区三区免费视频| 色婷婷狠狠五月综合天色拍| 欧美精品中文| 日韩欧美在线精品| 欧美日韩在线二区| 久久精品97| 另类av一区二区| 一区二区精品伦理...| 日韩久久一区| 自拍日韩欧美| 综合色一区二区| 波多视频一区| 国产日韩欧美一区| 日韩一区欧美二区| 久久久噜噜噜| 国产精品久久久久久久久免费高清 | 性色一区二区| 日韩久久电影| 欧美国产不卡| 日本午夜精品一区二区三区电影| 亚洲精品91| 欧洲一级精品| 成人精品久久| 国产欧美69| 天堂va欧美ⅴa亚洲va一国产| 国产精品88久久久久久| 国产传媒在线| 国产成人精品免费视| 欧美日本不卡| 欧美日本精品| 久久不射网站| 伊人久久婷婷| japanese国产精品| 国产99久久| 亚洲女同av| 久久中文欧美| 国产九一精品| 欧美日韩在线精品一区二区三区激情综合| 久久香蕉精品| 乱人伦精品视频在线观看| 国产农村妇女精品一区二区| 亚洲大片在线| 久久免费高清| 久久久久久久久丰满| 国产资源在线观看入口av| 国产情侣久久| 久久狠狠久久| 欧美视频久久| 91成人在线网站| 日韩成人午夜精品| 69精品国产久热在线观看| 国产欧美88| 国产精品sss在线观看av| 国产亚洲一卡2卡3卡4卡新区| 日本成人在线不卡视频| 亚洲精品免费观看| 日韩区一区二| 国产剧情在线观看一区| 国产精区一区二区| 视频在线在亚洲| 欧美激情国产在线| 国内一区二区三区| 国产精品二区不卡| 婷婷激情一区| 蜜臀av免费一区二区三区| 日韩午夜av| 噜噜噜久久亚洲精品国产品小说| 免费观看久久久4p| 亚洲精品伦理| 国产欧美日韩影院| 国产精品成久久久久| 亚洲爱爱视频| 在线一区免费| 日韩一区中文| 国产精品美女久久久久久不卡| 日韩高清欧美激情| 国产精品日韩精品在线播放| 国产精品多人| 免费看av不卡| 99亚洲视频| 青青草国产成人99久久| 国产精品v亚洲精品v日韩精品 | 国产精品99久久精品| 婷婷激情久久| 亚洲欧洲日韩| 国产精品毛片aⅴ一区二区三区| 国产欧洲在线| 国产日韩专区| 亚洲精品无吗| 国产精品成人国产| 国产一区二区三区不卡视频网站 | 亚洲美女久久精品| 亚洲欧美久久| 亚洲免费毛片| 久久99青青| 久久一级电影| 日本在线一区二区三区| 精品一级视频| 国产专区一区| 欧美日一区二区三区在线观看国产免| а√天堂中文在线资源8| 香蕉视频成人在线观看| 国产精品第一| 日韩午夜av在线| 久久av综合| 9色精品在线| 久久不见久久见免费视频7| 999国产精品999久久久久久| 天使萌一区二区三区免费观看| 日韩在线观看中文字幕| 麻豆mv在线观看| 亚洲精品在线二区| 波多视频一区| 日韩精品免费视频人成| 91亚洲一区| 午夜视频一区二区在线观看| 国产精品xx| 中文字幕一区二区精品区| 伊伊综合在线| 欧美久久一区二区三区| 精品91久久久久| yellow在线观看网址| 色狠狠一区二区三区|