1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php批量添加水印图片大小 批量添加水印

php批量添加水印图片大小 批量添加水印

时间:2019-08-29 00:20:47

相关推荐

php批量添加水印图片大小 批量添加水印

里面有个STXINGKA.TTF,这是个字体文件

~~~

/**

*给一个文件夹的所有图片加水印

*获取目录中所有目录和文件

*@param string $dir 目录路径

*/

function getAllFile($dir,$fontfile,$text){

//打开目录句柄

$handle = opendir($dir);

//读取目录

while(($fileName = readdir($handle)) !== false){

//过滤'.'和'..'和文件

if($fileName == '.'||$fileName == '..'){

continue;

}

$newFile = $dir.'/'.$fileName;

//转码

$newFile = iconv('gbk','utf-8',$newFile);

if(is_dir($newFile)){

// echo $newFile.'

';

// exit();

getAllFile($newFile,$fontfile,$text);

}else{

//echo $fileName.'

';

waterMark($newFile,$fontfile,$text);

}

}

closedir($handle);

}

/**

* 给图片添加水印

* @param string $filename 要添加水印图片的路径

* @param string $fontfile 使用的 TrueType 字体的路径

* @param string $text 水印文本内容

* @param float $size 水印字体的大小,默认是50

* @param float $angle 水印字体的旋转角度,默认是30度

* @return string $tmpName 生成的水印图片的路径

*/

function waterMark($filename,$fontfile,$text,$size = 50,$angle = 20)

{

$info = getimagesize($filename);

$mime = explode('/',$info['mime']);

//获取图片的宽度

$imgWidth = $info[0];

//获取图片的高度

$imgHeight = $info[1];

//水印文字位置左上角的横坐标设置为图片宽度的0.3

$x = 0.25 * $imgWidth;

//水印文字位置左上角的纵坐标设置为图片高度的0.45

$y = 0.45 * $imgHeight;

//获取图片后缀

$ext = array_pop($mime);

//构建创建画布的函数名

$funName = 'imagecreatefrom'.$ext;

//创建一个画布

$img = $funName($filename);

//生成一个有透明度的颜色,最后一个参数表示透明度取值为0~127,127位完全透明

$color = imagecolorallocatealpha($img,0,0,255,90);

//向图片是写文字

//imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

//循环向图片添加水印

for ($i=0,$y = 0; $y < $imgHeight; $i++) {

$y = $i * $size * 2 + 0.1 * $imgHeight;

imagettftext($img,$size,$angle,$x,$y,$color,$fontfile,$text);

}

if (!is_dir('./waterMarkImage')) {

mkdir('./waterMarkImage');

}

//拼接图片保存路径

$tmpName = explode('/',$filename);

$tmpName = './waterMarkImage/'.'mark_'.$tmpName[count($tmpName) - 1];

$funName = 'image'.$ext;

if ($ext == 'jpeg') {

//保存添加水印的图片

$funName($img,$tmpName,100);

}else{

$funName($img,$tmpName);

}

//将图片显示在网页

//header('Content-type:image/'.$ext);

//$funName($img);

// 释放资源

//imagedestroy($img);

return $tmpName;

}

//测试

getAllFile('./goods_img','./STXINGKA.TTF','天猫正品');

?>

~~~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。