PHP GD加水印
在圖片操作中,加水印是一種常見的處理方式。PHP GD庫是一個(gè)非常流行的處理圖片的庫,它提供了大量的功能,其中包括添加水印。GD庫是一種在PHP環(huán)境中進(jìn)行圖片處理的庫,它提供了許多處理圖片的函數(shù),如:打開、創(chuàng)建、處理、保存圖像等等。GD庫提供非常強(qiáng)大的圖片處理功能,受到越來越多開發(fā)者的青睞。接下來,我將詳細(xì)介紹如何使用PHP GD庫添加水印。
在PHP中使用GD添加水印,最常見的方式就是通過函數(shù)imagecopy()和imagecopymerge()。接下來我們分別看一下這兩種方法以及實(shí)現(xiàn)方法:
imagecopy:
imagecopy函數(shù)是用于拷貝一張圖像,在指定的目標(biāo)位置繪制一張?jiān)磮D像。這個(gè)函數(shù)需要五個(gè)參數(shù):目標(biāo)畫布、源畫布、目標(biāo)畫布中的起始點(diǎn)(目標(biāo)部分左上角的x和y坐標(biāo))、源畫布中的起始點(diǎn)(要拷貝的部分的左上角x和y坐標(biāo)),以及復(fù)制的寬度和高度。
// 畫布1
$dst_im = imagecreatefromjpeg('./images/dest.jpg');
// 畫布2
$src_im = imagecreatefrompng('./images/watermark.png');
//獲取 watermark.png 圖片的寬高
$src_w = imagesx($src_im);
$src_h = imagesy($src_im);
//復(fù)制水印到目標(biāo)圖片
imagecopy($dst_im, $src_im, 0, 0, 0, 0, $src_w, $src_h);
//輸出水印圖片
header("Content-Type: image/jpeg");
imagejpeg($dst_im);
imagedestroy($dst_im);
imagedestroy($src_im);
imagecopymerge:
imagecopymerge()函數(shù)與imagecopy()非常相似。它的使用與imagecopy()一樣,不過還多了一個(gè)參數(shù),用于指定透明度。這個(gè)函數(shù)只在源圖像的邊緣上保留其透明度值。比如:如果源圖像是一個(gè)透明的png圖像,那么這個(gè)圖像的透明度值在邊緣上將會保留。如果你不想這樣,用imagecopy()。
// 畫布1
$dst_im = imagecreatefromjpeg('./images/dest.jpg');
// 畫布2
$src_im = imagecreatefrompng('./images/watermark.png');
//獲取 watermark.png 圖片的寬高
$src_w = imagesx($src_im);
$src_h = imagesy($src_im);
//復(fù)制水印到目標(biāo)圖片
$src_x = 0; $src_y = 0; $src_w = $src_w - 1; $src_h = $src_h - 1;
//定義邊距,防止溢出
$dst_x = 0;$dst_y = 0; $dst_w = $src_w; $dst_h = $src_h;
//進(jìn)行透明處理
$opacity = 100;
imagecopymerge($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $opacity);
//輸出水印圖片
header("Content-Type: image/jpeg");
imagejpeg($dst_im);
imagedestroy($dst_im);
imagedestroy($src_im);
總結(jié):
在這篇文章中,我們了解了如何使用php GD庫添加水印,包括兩種主要方法:imagecopy()和imagecopymerge()。無論使用哪種方法,都需要使用imagecreatefromjpeg()、imagecreatefrompng()、imagejpeg()等GD庫函數(shù)。我們在實(shí)際應(yīng)用中經(jīng)常會發(fā)現(xiàn)需求不同,搭配另外的處理方式。比如如果需要將水印旋轉(zhuǎn),我們可以使用imagerotate();如果需要把支持的多種圖片格式處理成jpeg格式,可以使用imagecreatefromstring()和imagejpeg()。無論什么需求,都可以通過GD庫實(shí)現(xiàn)。
上一篇php gd 下載
下一篇php gd 保存圖片