十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本篇內(nèi)容主要講解“PHP中怎么添加圖片水印”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“PHP中怎么添加圖片水印”吧!
成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站建設(shè)、網(wǎng)站制作與策劃設(shè)計,克東網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:克東等地區(qū)??藮|做網(wǎng)站價格咨詢:18982081108
在我們的日常生活中,為了不希望自己的圖片被盜用,經(jīng)常能夠看到在一些圖片上添加水印,比如我們網(wǎng)站上,輸入圖片文件的話會自動在右下角加上一個水印,那么這種水印效果是怎么實現(xiàn)的呢?通過PHP就可以實現(xiàn)為圖片增加水印的效果。
在之前文章中對圖片進行裁剪放到目標圖上的操作和添加水印有些類似,為了實現(xiàn)添加水印,需要通過 imagecopymerge函數(shù)。
imagecopymerge
函數(shù)
imagecopymerge函數(shù)的語法格式如下:
imagecopymerge($目標圖片,$來源圖片,$目標開始的x ,$目標開始的y,$來源的x ,$來源的y ,$來源的寬 ,$來源的高 ,$透明度)
其中透明度的值是0-100的整數(shù),透明度的值越大,水印越不透明。
接下來我們通過實例來看一下應(yīng)該怎樣給圖片增加水印:
首先準備了一個名為test.png的圖片和一個名為logo.png的水印圖片放到了我們的根目錄里
注意上面這個是示例圖片,下面的水印并不是我添加的,是網(wǎng)站自動添加的,為了區(qū)分,實例的水印是下面這樣的
那接下來,操作如下:
輸出結(jié)果:
由上述結(jié)果可以看出,通過imagecopymerge函數(shù)添加了一個透明度為50的水印。
拓展知識imagecopy
函數(shù)
不止使用imagecopymerge函數(shù)一種方法添加水印,也能夠通過 imagecopy()
函數(shù),它能夠復(fù)制函數(shù)的一部分,它的語法格式如下:
imagecopy($目標圖片, $來源圖片,$目標圖片x,$目標圖片y,$來源圖片x,$來源圖片y,$來源圖片寬,$來源圖片高)
它的含義是,在來源圖片的(x,y)的地方選取寬為w,高為h的矩形區(qū)域到目標圖片的(x,y)上。
使用 PHP 中的 imagesx()、imagesy() 兩個函數(shù)來分別獲取圖片的寬度和高度。它們的語法格式如下:
imagesx(resource $image) imagesy(resource $image)
實例如下:
$district OR $district > 9) $district = 9; switch($district){ case 1: $x = +5; $y = +5; break; case 2: $x = ($img_w - $watermark_w) / 2; $y = +5; break; case 3: $x = $img_w - $watermark_w - 5; $y = +5; break; case 4: $x = +5; $y = ($img_h - $watermark_h) / 2; break; case 5: $x = ($img_w - $watermark_w) / 2; $y = ($img_h - $watermark_h) / 2; break; case 6: $x = $img_w - $watermark_w; $y = ($img_h - $watermark_h) / 2; break; case 7: $x = +5; $y = $img_h - $watermark_h - 5; break; case 8: $x = ($img_w - $watermark_w) / 2; $y = $img_h - $watermark_h - 5; break; case 9: $x = $img_w - $watermark_w - 5; $y = $img_h - $watermark_h - 5; break; } switch ($imginfo[2]) { case 1: $im = @imagecreatefromgif($img); break; case 2: $im = @imagecreatefromjpeg($img); break; case 3: $im = @imagecreatefrompng($img); break; } switch ($watermarkinfo[2]) { case 1: $watermark_logo = @imagecreatefromgif($watermark); break; case 2: $watermark_logo = @imagecreatefromjpeg($watermark); break; case 3: $watermark_logo = @imagecreatefrompng($watermark); break; } if(!$im or !$watermark_logo) return false; $dim = @imagecreatetruecolor($img_w, $img_h); if(@imagecopy($dim, $im, 0, 0, 0, 0,$img_w,$img_h )){ imagecopy($dim, $watermark_logo, $x, $y, 0, 0, $watermark_w, $watermark_h); } $file = dirname($img) . '/w' . basename($img); $result = imagejpeg ($dim,$file,$watermarkquality); imagedestroy($watermark_logo); imagedestroy($dim); imagedestroy($im); if($result){ echo $img.' 水印添加成功'; return; } else { return false; } } $file = 'test.png'; //待加水印的圖片地址 $water = 'logo.png'; //水印圖片的地址 watermark($file, $water); ?>
輸出結(jié)果:
效果如下:
到此,相信大家對“PHP中怎么添加圖片水印”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!