php为图片平铺文字水印

/**
* 图片水印铺满
* param $path       string  图片路径 
* param $file_name  string  图片名称 
* param $font       string  字体路径 
* param $water_text string  水印文字 
* param $over_flag  bool    true 覆盖 false 不覆盖创建一个新的图片
* param $water_w    int     文字水印的宽度
* param $water_h    int     文字水印的高度
* param $angle      int     水印文字倾斜角度
* param $font_size  int     水印文字大小
*/
function createImgWater($path, $file_name, $font, $water_text='水印00000000000001', $over_flag=false, $font_size=10, $water_w=300,$water_h=300, $angle=-45) {
    ob_start();

    //检查文件和水印
    if ($file_name == "" || $water_text == "") return array('code'=>201, 'msg'=>'文件名为空或者水印为空!');
    //检测是否安装GD库
    if (false == function_exists("gd_info")) return array('code'=>201, 'msg'=>'"系统没有安装GD库,不能给图片加水印!');
    //设置输入、输出图片路径名
    $resourceImg = $path.$file_name; //输入的源文件
    $resImg = $resourceImg; //输出的目标文件
    if (!$over_flag) {
        $arr_in_name = explode(".", $file_name);
        $resImg = $path . $arr_in_name[0]."_water_text.".$arr_in_name[1];
    }
    //检测图片是否存在
    if (!file_exists($resourceImg)) return array('code'=>201, 'msg'=>'"图片不存在!');
    $info = getimagesize($resourceImg);
    //通过编号获取图像类型
    $type = image_type_to_extension($info[2],false);
    //在内存中创建和图像类型一样的图像
    $fun = "imagecreatefrom".$type;
    //图片复制到内存
    $image = $fun($resourceImg);
    //设置字体颜色和透明度
    $color = imagecolorallocatealpha($image, 255, 255, 255, 50);
    $x_length = $info[0];
    $y_length = $info[1];
    //铺满屏幕
    for ($x = 0; $x < $x_length; $x) {
        for ($y = 0; $y < $y_length; $y) {
            imagettftext($image, $font_size, $angle, $x, $y, $color, $font, $water_text);
            $y += $water_h;
        }
        $x += $water_w;
    }
    //浏览器输出 保存图片的时候 需要去掉
    //header("Content-type:".$info['mime']);
    $fun = "image".$type;
    $fun($image);
    //保存图片
    $fun($image, $resImg);
    //销毁图片
    imagedestroy($image);
    ob_end_clean();  //清理内存中的图片输出(必须)

    return  array('code'=>200, 'msg'=>'"成功', 'image'=>$resImg);
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值