php實現ckeditor編輯器新增水印及使用誤區
阿新 • • 發佈:2019-01-14
是這個樣子的,我的在給一個比較老的網站需要增加文章水印的功能,本來我是想拷貝來的 用就成了, 但是總是有錯誤提示!
因此,只能自己寫了;
一、定義了一個 setwater.php的檔案
```
function setwater($src,$water){
//$src 為需要新增圖片的源途徑;$water為水印圖片路徑;
//測試後,路徑可採取相對路徑進行訪問;對此網站我們需要去掉 uploadfiles前的/
$src_path = substr($src, 1);
$water_path = $water;
//獲取圖片的型別及寬/高
list($src_w,$src_h,$src_type) = getimagesize($src_path);
list($water_w,$water_h) = getimagesize($water_path);
//pos 為水印放置的位置;右下角
$posX = $src_w - $water_w;
$posY = $src_h-$water_h;//假設它是符合座標系y原則,
//關於 水印寬度高度設定;我們採取不設定,那麼水印的大小就是原始大小;
if($src_w>400 && $src_h>200){
//1 = GIF,2 = JPG,3 = PNG,4 = SWF
$water_source = imagecreatefrompng($water_path);
switch ($src_type) {
case 1:
$src_source = imagecreatefromgif($src_path);
imagecopy($src_source, $water_source, $posX, $posY, 0, 0, $src_w, $src_h);
imagegif($src_source,$src_path);
break;
case 2:
$src_source = imagecreatefromjpeg($src_path);
imagecopy($src_source, $water_source, $posX, $posY, 0, 0, $src_w, $src_h);
imagejpeg($src_source,$src_path);
break;
case 3:
$src_source = imagecreatefrompng($src_path);
imagecopy($src_source, $water_source, $posX, $posY, 0, 0, $src_w, $src_h);
imagepng($src_source,$src_path);
break;
default:
break;
}
$src = "/".$src_path;
return $src;
}else{
//小圖片不加水印
return $src;
}
imagedestroy($src_source);
imagedestroy($water_source);
}
```
在編輯器圖片板塊的檔案中設定呼叫:
```
//新增水印開始
$filename = $config['site_url'].$file_abso;
$wate = syurl;
setwater($filename,$wate);
//新增水印結束
```
這個方法呢只傳入兩個引數,是圖片的源路徑,
關於路徑,就是類似 很多網站自己定義的/upfileloads/…….......jpg,是讀取不到圖片的,可以使用網站的絕對路徑或者相對路徑才能進行訪問!
第二個,網站有個隨機命名圖片名稱的方式,但是在我設定圖片增加水印的方法後,提示
it is,總之就是時區不對 的意思,在php.ini增加,時區為重慶,才ok了!