登录  /  注册

利用php给图片添加文字水印--面向对象与面向过程俩种方法的实现

php中文网
发布: 2016-07-30 13:30:32
原创
1398人浏览过

1: 面向过程的编写方法

<span>//</span><span>指定图片路径</span><span>$src</span> = '001.png'<span>;
</span><span>//</span><span>获取图片信息</span><span>$info</span> = <span>getimagesize</span>(<span>$src</span><span>);
</span><span>//</span><span>获取图片扩展名</span><span>$type</span> = image_type_to_extension(<span>$info</span>[2],<span>false</span><span>);
</span><span>//</span><span>动态的把图片导入内存中</span><span>$fun</span> =  "imagecreatefrom{<span>$type</span>}"<span>;
</span><span>$image</span> = <span>$fun</span>('001.png'<span>);
</span><span>//</span><span>指定字体颜色</span><span>$col</span> = imagecolorallocatealpha(<span>$image</span>,255,255,255,50<span>);
</span><span>//</span><span>指定字体内容</span><span>$content</span> = 'helloworld'<span>;
</span><span>//</span><span>给图片添加文字</span>imagestring(<span>$image</span>,5,20,30,<span>$content</span>,<span>$col</span><span>);
</span><span>//</span><span>指定输入类型</span><span>header</span>('Content-type:'.<span>$info</span>['mime'<span>]);
</span><span>//</span><span>动态的输出图片到浏览器中</span><span>$func</span> = "image{<span>$type</span>}"<span>;
</span><span>$func</span>(<span>$image</span><span>);
</span><span>//</span><span>销毁图片</span>imagedestroy(<span>$image</span>);
登录后复制

2:面向对象的实现方法

<span>class</span><span> Image_class {
    </span><span>private</span><span>$image</span><span>;
    </span><span>private</span><span>$info</span><span>;

    </span><span>/*</span><span>*
     * @param $src:图片路径
     * 加载图片到内存中
     </span><span>*/</span><span>function</span> __construct(<span>$src</span><span>){
        </span><span>$info</span> = <span>getimagesize</span>(<span>$src</span><span>);
        </span><span>$type</span> = image_type_to_extension(<span>$info</span>[2],<span>false</span><span>);
        </span><span>$this</span> -&gt; info =<span>$info</span><span>;
        </span><span>$this</span>-&gt;info['type'] = <span>$type</span><span>;
        </span><span>$fun</span> = "imagecreatefrom" .<span>$type</span><span>;
        </span><span>$this</span> -&gt; image = <span>$fun</span>(<span>$src</span><span>);
    }

    </span><span>/*</span><span>*
     * @param $fontsize: 字体大小
     * @param $x: 字体在图片中的x位置
     * @param $y: 字体在图片中的y位置
     * @param $color: 字体的颜色是一个包含rgba的数组
     * @param $text: 想要添加的内容
     * 操作内存中的图片,给图片添加文字水印
     </span><span>*/</span><span>public</span><span>function</span> fontMark(<span>$fontsize</span>,<span>$x</span>,<span>$y</span>,<span>$color</span>,<span>$text</span><span>){
        </span><span>$col</span> = imagecolorallocatealpha(<span>$this</span>-&gt;image,<span>$color</span>[0],<span>$color</span>[1],<span>$color</span>[2],<span>$color</span>[3<span>]);
        imagestring(</span><span>$this</span>-&gt;image,<span>$fontsize</span>,<span>$x</span>,<span>$y</span>,<span>$text</span>,<span>$col</span><span>);
    }
    </span><span>/*</span><span>     * 输出图片到浏览器中
     </span><span>*/</span><span>public</span><span>function</span><span> show(){
       </span><span>header</span>('content-type:' . <span>$this</span> -&gt; info['mime'<span>]);
        </span><span>$fun</span>='image' . <span>$this</span>-&gt;info['type'<span>];
        </span><span>$fun</span>(<span>$this</span>-&gt;<span>image);
    }

    </span><span>/*</span><span>*
     * 销毁图片
     </span><span>*/</span><span>function</span><span> __destruct(){
        imagedestroy(</span><span>$this</span>-&gt;<span>image);
    }
}
</span><span>//</span><span>对类的调用</span><span>$obj</span> = <span>new</span> Image_class('001.png'<span>);
</span><span>$obj</span>-&gt;fontMark(20,20,30,<span>array</span>(255,255,255,60),'hello'<span>);
</span><span>$obj</span>-&gt;show();
登录后复制

以上就介绍了利用php给图片添加文字水印--面向对象与面向过程俩种方法的实现,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号