資源簡介
<?php
/**
*圖片加水印
*@param $srcImg 原圖
*@param $waterImg 水印圖片
*@param $savepath 保存路徑
*@param $savename 保存名字
*@param $position 水印位置
*1:左上 2:右上 3:居中 4:左下 5:右下
*@param $opacity 透明度
*0:全透明 100:完全不透明
*@return 成功 -- 加水印后的新圖片地址
* 失敗 -- -1:源文件不存在,-2:水印不存在,-3源文件圖片對象建立失敗,-4:水印文件圖像對象建立失敗,-5:加水印后的新圖片保存失敗
* 獲取源文件路徑、寬高等信息,得出保存后文件保存路徑、水印放置位置->建立源文件和水印圖片對象->合并圖片對象(imagecopymerge)->銷毀圖片對象
*/
function img_create_from_ext($imgfile){
$info = getimagesize($imgfile);
$im = null;
switch ($info[2]) {
case 1:
$im = imagecreatefromgif($imgfile);
break;
case 2:
$im = imagecreatefromjpeg($imgfile);
break;
case 3:
$im = imagecreatefrompng($imgfile);
break;
}
return $im;
}
function img_water_mark($srcImg, $waterImg, $savepath=null, $savename=null, $position=5, $opacity=50){
$temp = pathinfo($srcImg);
$name = $temp['basename'];
$path = $temp['dirname'];
$exte = $temp['extension'];
$savename = $savename ? $savename : $name;
$savepath = $savepath ? $savepath : $path;
$savefile = $savepath.'/'.$savename;
$srcinfo = @getimagesize($srcImg);
if(!$srcinfo){
return -1;
}
$waterinfo = @getimagesize($waterImg);
if(!$waterinfo){
return -2;
}
$srcImgObj = img_create_from_ext($srcImg);
if(!$srcImgObj){
return -3;
}
$waterImgObj = img_create_from_ext($waterImg);
if(!$waterImgObj){
return -4;
}
switch ($position) {
case 1:
$x=$y=0;
break;
case 2:
$x=$srcinfo[0] - $waterinfo[0];
$y=0;
break;
case 3:
$x=($srcinfo[0] - $waterinfo[0])/2;
$y=($srcinfo[1] - $waterinfo[1])/2;
break;
case 4:
$x=0;
$y=$srcinfo[1] - $waterinfo[1];
break;
case 5:
$x=$srcinfo[0] - $waterinfo[0];
代碼片段和文件信息
評論
共有 條評論