程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP圖片處理之使用imagecopy函數添加圖片水印實例

PHP圖片處理之使用imagecopy函數添加圖片水印實例

編輯:PHP綜合

為圖片添加水印也是圖片處理中常見的功能。因為只要在頁面中見到的圖片都可以很輕松地拿到,你辛辛苦苦編輯的圖片不想被別人不費吹灰之力拿走就用,所以為圖片添加水印以確定版權,防止圖片被盜用。制作水印可以使用文字(公司名稱加網址),也可以使用圖片(公司LOGO),圖片水印效果更好一些,因為可以通過一些做圖片軟件進行美化。使用文字做水印,只需要在圖片上畫一些文字即可。如果制作圖片水印,就需要先了解一下GD庫中的imagecopy()函數,能復制圖片的一部分。該函數的原型如下所示:

復制代碼 代碼如下:
bool imagecopy(resource dst_im,resource src_im,int dst_x,int dst_y,int src_x,int src_y,int src_w,int src_h)

該函數的作用是將src_im圖像中坐標從src_x,src_y開始,寬度為src_w,高度為src_h的一部分復制到dst_im圖像中坐標為dst_x和dst_y的位置上。以JPEG格式的圖片為例,編寫一個為圖片添加水印的函數watermark(),代碼如下所示:

復制代碼 代碼如下:
<?php
//為背景圖片添加圖片水印(位置隨機),背景圖片格式為jpeg,水印圖片格式為gif
function watermark($filename,$water){
//獲取背景圖片的寬度和高度
list($b_w,$b_h) = getimagesize($filename);
//獲取水印圖片的寬度和高度
list($w_w,$w_h) = getimagesize($water);
//在背景圖片中放水印圖片的位置隨機起始位置
$posX = rand(0, ($b_w-$w_w));
$posY = rand(0, ($b_h-$w_h));
//創建背景圖片的資源
$back = imagecreatefromjpeg($filename);
//創建水印圖片的資源
$water = imagecreatefromgif($water);
//使用imagecopy()函數將水印圖片復制到背景圖片指定的位置中
imagecopy($back, $water, $posX, $posY, 0, 0, $w_w, $w_h);
//保存帶有水印圖片的背景圖片
imagejpeg($back,$filename);
imagedestroy($back);
imagedestroy($water);
}
watermark("brophp.jpg", "logo.gif");
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved