php用GD库给图片添加水印

349 查看

php用GD库给图片添加文字水印,整个代码比较简单,DEMO如下:

<?php
    /*打开图片*/
    //1、配置图片路径
    $src = "aeroplane.jpg";
    //2、获取图片信息
    $info = getimagesize($src);
    //3、获取图片类型
    $type = image_type_to_extension($info[2], false);
    //4、在内存中创建一个和我们图像类型一样的图像
    $func = "imagecreatefrom{$type}";
    //5、把图片复制到我们的内存中
    $image = $func($src);

    /* 操作图片 */
    //1、设置字体路径
    $font = "STXINGKA.ttf";
    //2、填写水印内容
    $content = "你好 mooc";
    //3、设置字体颜色和透明度
    $color = imagecolorallocatealpha($image, 255, 255, 255, 50);
    //4、写入文字
    imagettftext($image, 60, 0, 60, 120, $color, $font, $content);

    /* 输出图片 */
    //1、浏览器输出
    header("Content-type:" . $info['mime']);
    $outputfunc = "image{$type}";
    $outputfunc($image);
    //2、保存图片
    $outputfunc($image, "newimage." . $type);

    /* 销毁图片 */
    imagedestroy($image);
?>

图片水印也类似:

<?php
    /*打开图片*/
    //1、配置图片路径
    $src = "aeroplane.jpg";
    //2、获取图片信息
    $info = getimagesize($src);
    //3、获取图片类型
    $type = image_type_to_extension($info[2], false);
    //4、在内存中创建图像
    $createImageFunc = "imagecreatefrom{$type}";
    //5、把图片复制内存中
    $image = $createImageFunc($src);

    /*操作图片*/
    //1、设置水印图片路径
    $imageMark = "logo.png";
    //2、获取水印图片基本信息
    $markInfo = getimagesize($imageMark);
    //3、获取水印图片类型
    $markType = image_type_to_extension($markInfo[2], false);
    //4、在内存创建图像
    $markCreateImageFunc = "imagecreatefrom{$markType}";
    //5、把水印图片复制到内存中
    $water = $markCreateImageFunc($imageMark);

    //特别处理,设置透明
    $color=imagecolorallocate($water,255,255,255);
    imagefill($water,0,0,$color);
    imagecolortransparent($water,$color);

    //6、合并图片
    imagecopymerge($image, $water, 20, 30, 0, 0, $markInfo[0], $markInfo[1], 30);
    //7、销毁水印图片
    imagedestroy($water);

    /* 输出图片 */
    //1、浏览器输出
    header("Content-type:" . $info['mime']);
    $outputfunc = "image{$type}";
    $outputfunc($image);
    //2、保存图片
    $outputfunc($image, "image_mark." . $type);

    /* 销毁图片 */
    imagedestroy($image);
?>