給自己網站上的圖片添加水印,在圖片上留下屬于自己的信息,這有兩個好處,一是宣傳自己的品牌,二是就算帶圖片的文章被轉載了,也會自動的留下了版權.
本文主要實現了php圖片上傳自動給圖片加水印,在下篇中我會給出用php添加文字水印的代碼.
php給圖片加水印其實很簡單,沒有想象的那么神奇,就是利用了php里面的一個GD庫,說起GD庫,其實就是php里面一個專門用于處理圖片有關的擴展,比如我們熟悉的驗證碼、生成縮略圖,包括今天所說的php給圖片加水印都是要有GD庫的支持.
提示:新安裝的php環境,可能需要開啟GD庫,開啟方法,打開php.ini,去掉extension=php_gd2.dll前面的“;”然后重啟apache/iis即可.
實現并不復雜,核心代碼還不到20行,主要是掌握幾個函數就行了,代碼如下:
- <?php
- $ori_img = "images/13801220684507.jpg"; //原圖
- $water_img = "logo.png"; //水印
- $new_img = "images/daixiaorui.jpg"; //生成水印后的圖片
- $original = getimagesize($ori_img); //得到圖片的信息,可以print_r($original)發現它就是一個數組
- $watermark = getimagesize($water_img);
- $s_original = imgCreateFrom($ori_img, $original[2]); //$original[2]是圖片類型,其中1表示gif、2表示jpg、3表示png
- $s_watermark = imgCreateFrom($water_img, $watermark[2]);
- $posX = $original[0] - $watermark[0]-6; //X坐標(右下角)
- $poxY = $original[1] - $watermark[1]-3; //Y坐標(右下角)
- //打水印
- imagecopy($s_original, $s_watermark, $posX, $poxY, 0, 0, $watermark[0], $watermark[1]);
- //header("Content-type:image/jpeg");
- //imagejpeg($s_original); //向瀏覽器輸出圖片
- $loop = imagejpeg($s_original, $new_img); //生成新的圖片(jpg格式),如果用imagepng可以生成png格式
- if($loop){
- echo "水印添加成功!";
- }
- //根據文件類型 創建一個新圖象
- function imgCreateFrom($img_src, $val){
- switch($val){
- case 1 : $img = imagecreatefromgif($img_src);
- break;
- case 2 : $img = imagecreatefromjpeg($img_src);
- break;
- case 3 : $img = imagecreatefrompng($img_src);
- break;//開源代碼Vevb.com
- }
- return $img;
- }
- ?>
給圖片添加水印除了用基礎的GD庫實現,其實還可以ImageMagick這個工具,它的功能更強大,不過一般沒多大需求,就用上面這個代碼了.
新聞熱點
疑難解答