zoukankan      html  css  js  c++  java
  • php用GD库给图片添加水印

    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);
    ?>
    
  • 相关阅读:
    阿里云镜像市场,让“上云”从此零门槛!
    #火到没朋友# 攒够¥12.18, 召唤超级英雄助你上云
    阿里云1218,百亿资本助力开发者
    万网云解析全面升级开放,支持海外IP解析!
    困知,勉行—阿里云服务观
    考考你!布署上云最快需要几步?
    Ta们,用云计算改变着更多普通人的生活,所以,我们1218
    【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』
    【阿里云产品公测】性能测试服务PTS的初步尝试
    .NET LINQ概述
  • 原文地址:https://www.cnblogs.com/lurenjiashuo/p/php-watermark-demo.html
Copyright © 2011-2022 走看看