php給圖片處理添加水印(文本水印次乓、圖片水酉判)

首先現(xiàn)打開一張圖片。

<?php
    header('content-type:image/jpeg;charset="utf-8"'); //告訴瀏覽器這是一張圖片,不是html代碼票腰,不然會亂碼
    $imgSrc = './image1.jpg'; //圖片存放路徑
    $img = imagecreatefromjpeg($imgSrc);//打開圖片
    imagejpeg($img); //解析圖片
?>

增加文字水印城看。

<?php
    header('content-type:image/jpeg;charset="utf-8"'); //告訴瀏覽器這是一張圖片,不是html代碼,不然會亂碼
    $imgSrc = './image1.jpg'; //圖片存放路徑
    $img = imagecreatefromjpeg($imgSrc);//打開圖片
    $color = imagecolorallocate($img,0,0,0); //文字水印顏色分配杏慰,后三個參數(shù)為rgb,000為黑色
    $text = '今天天氣不錯测柠!'; //文本水印內(nèi)容
    imagettftext($img,40,0,200,200,$color,'STXINGKA.TTF',$text); //繪制圖片水印
    //參數(shù)解釋炼鞠,分別是:圖片資源、字體大小轰胁、字體傾斜角度谒主、文字在x軸位置、文字在y軸的位置赃阀、文本顏色霎肯、字體家族路徑、文本內(nèi)容
    
    imagejpeg($img); //解析圖片
?>


注意:
字體家族獲劝及摇:
win10電腦--我的電腦--C盤--windows--Font--選擇1種你喜歡的字體拷貝到項目中姿现。

他是一種.ttf后綴的文件,你也可以到百度搜索一些你喜歡的字體下載解壓即可使用肖抱。

如果你的水印是中文的話备典,那么你的字體家族也要找中文的字體,不能使用英文的字體家族意述,不然頁面不會顯示效果提佣,但是英文文本可以使用中文的字體家族。


獲取圖片的寬高信息

<?php
    $imgSrc = './image1.jpg'; //圖片存放路徑
    $img = imagecreatefromjpeg($imgSrc);//打開圖片
    echo "圖片的寬度是:";
    var_dump(imagesx($img)); //獲取圖片的寬度
    echo "圖片的高度是:";
    var_dump(imagesy($img)); //獲取圖片的高度
    
    var_dump(getimagesize('./image1.jpg')); /*獲取圖片的詳情信息,寬高荤崇、字節(jié)大小拌屏、
    圖片格式、命名术荤、文件路徑等倚喂,不過參數(shù)不能放變量的圖片路徑。*/
    
//print_r(getimagesize('./image1.jpg')); //print_r和var_dump輸出同樣效果
?>

我們看看圖片是不是真的是1152X864


獲取文本水印盒子的寬高
首先我們要知道文本水印的內(nèi)容是實際上是有一個盒子包裹的瓣戚,是有寬高的端圈。

<?php
    $imgSrc = './image1.jpg'; //圖片存放路徑
    $img = imagecreatefromjpeg($imgSrc);//打開圖片
    $text = 'qianying.com'; //文本水印內(nèi)容
    imagettftext($img,40,0,100,100,$color,'STXINGKA.TTF',$text); //繪制圖片水印
    $posi = imagettfbbox(40,0,'STXINGKA.TTF',$text); //獲取文本盒子的寬高信息
    var_dump($posi);
    imagedestroy($img); //釋放資源
?>

每個數(shù)組下標(biāo)對應(yīng)的x和y軸坐標(biāo)(這個非常重要)。



控制文本水印盒子放置位置

如果我們想把文本水印放在圖片的右下角子库,我們第一個想法就是去直接手動調(diào)參數(shù)舱权。



我們已知圖片寬為1152px,高為864px仑嗅。那么我們可以大概判斷宴倍,水印文本的放置位置在x軸上的800px左右,高也是800左右仓技,忽略字體大小40px一個字符不計鸵贬。剛好可以到右下角這個位置。




但這種是寫死的固定定位脖捻,我們換一下水印文本內(nèi)容就會看出問題所在恭理。


水印文字沒有完整輸出到圖片上?這時候我們還是手動去調(diào)郭变?那換一張圖片颜价、換字體大小涯保、更改水印內(nèi)容文本、水印文本盒子的寬高等都會受到影響周伦,導(dǎo)致水印文本輸出不完整夕春,這種調(diào)X和Y軸的參數(shù),顯然不太合適了专挪。


正確做法是:先獲取圖片的高和寬及志,再獲取水印文本盒子的寬高,再來做出水印盒子相對于圖片X軸和Y軸的位移判斷寨腔。

完整代碼:

<?php
    header('content-type:image/jpeg;charset="utf-8"'); //告訴瀏覽器這是一張圖片,不是html代碼速侈,不然會亂碼
    $imgSrc = './image1.jpg'; //圖片存放路徑
    $img = imagecreatefromjpeg($imgSrc);//打開圖片
    $color = imagecolorallocate($img,0,0,0); //文字水印顏色分配,后三個參數(shù)為rgb,000為黑色
    $text = '千影圖庫'; //文本水印內(nèi)容
    $posiBox_text = imagettfbbox(40,0,'STXINGKA.TTF',$text); //獲取水印盒子的寬高信息
    $textBox_width = $posiBox_text[2] - $posiBox_text[0]; 
    //求出盒子的寬度迫卢,X軸:右下角的x坐標(biāo)-左下角的x坐標(biāo) = 寬度
    
    $img_width = imagesx($img); //獲取圖片的寬度
    $img_height = imagesy($img); //獲取圖片的高度
    
    imagettftext($img,40,0,$img_width-1-$textBox_width-($img_width/30),$img_height-1-($img_width/30),$color,'STXINGKA.TTF',$text); //繪制圖片的文字水印
    //參數(shù)解釋倚搬,分別是:圖片資源、字體大小乾蛤、字體傾斜角度每界、文字在x軸位置、文字在y軸的位置家卖、文本顏色眨层、字體家族路徑、文本內(nèi)容
    imagejpeg($img); //解析圖片
?>

效果預(yù)覽:



水印盒子的寬度是怎么求的上荡?



圖片水印處理

首先找一張帶文字logo的圖片趴樱,作為我們的圖像水印拷貝。
比如我們用這張圖片作為我們的圖像水印拷貝酪捡。


實際效果預(yù)覽:



代碼:

<?php
    header('content-type:image/jpeg;charset="utf-8"'); //告訴瀏覽器這是一張圖片,不是html代碼伊佃,不然會亂碼
    $imgSrc = './image1.jpg'; //圖片存放路徑
    $waterImgSrc = './logo.png'; //水印圖片存放路徑
    $img = imagecreatefromjpeg($imgSrc);//打開目標(biāo)圖片
    $waterImg = imagecreatefrompng($waterImgSrc);//打開水印圖片
    $color = imagecolorallocate($img,0,0,0); //文字水印顏色分配,后三個參數(shù)為rgb,000為黑色
    $text = '千影圖庫'; //文本水印內(nèi)容
    $posiBox_text = imagettfbbox(40,0,'STXINGKA.TTF',$text); //獲取水印盒子的寬高信息
    $textBox_width = $posiBox_text[2] - $posiBox_text[0];   //求出盒子的寬度沛善,X軸:右下角的x坐標(biāo)-左下角的x坐標(biāo) = 寬度
    $img_width = imagesx($img); //獲取目標(biāo)圖片的寬度
    $img_height = imagesy($img); //獲取目標(biāo)圖片的高度
    $waterMarkWidth = imagesx($waterImg); //獲取水印圖片的寬度
    $waterMarkHeight = imagesy($waterImg); //獲取水印圖片的高度
    imagettftext($img,40,0,$img_width-1-$textBox_width-($img_width/30),$img_height-1-($img_width/30),$color,'STXINGKA.TTF',$text); //繪制圖片的文字水印
    //參數(shù)解釋,分別是:圖片資源塞祈、字體大小金刁、字體傾斜角度、文字在x軸位置议薪、文字在y軸的位置尤蛮、文本顏色、字體家族路徑斯议、文本內(nèi)容
    
    imagecopy($img,$waterImg,100,100,0,0,$waterMarkWidth,$waterMarkHeight);
    imagejpeg($img); //解析圖片
    imagedestroy($img); //釋放資源
?>

imagecopy()方法:水印圖片拷貝的參數(shù)說明:



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末产捞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哼御,更是在濱河造成了極大的恐慌坯临,老刑警劉巖焊唬,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異看靠,居然都是意外死亡赶促,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門挟炬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸥滨,“玉大人,你說我怎么就攤上這事谤祖⌒鲎遥” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵粥喜,是天一觀的道長凸主。 經(jīng)常有香客問我,道長容客,這世上最難降的妖魔是什么秕铛? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮缩挑,結(jié)果婚禮上但两,老公的妹妹穿的比我還像新娘。我一直安慰自己供置,他們只是感情好谨湘,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芥丧,像睡著了一般紧阔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上续担,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天擅耽,我揣著相機與錄音,去河邊找鬼物遇。 笑死乖仇,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的询兴。 我是一名探鬼主播乃沙,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼诗舰!你這毒婦竟也來了警儒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤眶根,失蹤者是張志新(化名)和其女友劉穎蜀铲,沒想到半個月后边琉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蝙茶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年艺骂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隆夯。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡钳恕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹄衷,到底是詐尸還是另有隱情忧额,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布愧口,位于F島的核電站睦番,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏耍属。R本人自食惡果不足惜托嚣,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望厚骗。 院中可真熱鬧示启,春花似錦、人聲如沸领舰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冲秽。三九已至舍咖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锉桑,已是汗流浹背排霉。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留民轴,地道東北人攻柠。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像杉武,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子辙售,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容