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


    1: 面向过程的编写方法

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

    2:面向对象的实现方法

    class Image_class {
        private $image;
        private $info;
    
        /**
         * @param $src:图片路径
         * 加载图片到内存中
         */
        function __construct($src){
            $info = getimagesize($src);
            $type = image_type_to_extension($info[2],false);
            $this -> info =$info;
            $this->info['type'] = $type;
            $fun = "imagecreatefrom" .$type;
            $this -> image = $fun($src);
        }
    
        /**
         * @param $fontsize: 字体大小
         * @param $x: 字体在图片中的x位置
         * @param $y: 字体在图片中的y位置
         * @param $color: 字体的颜色是一个包含rgba的数组
         * @param $text: 想要添加的内容
         * 操作内存中的图片,给图片添加文字水印
         */
        public function fontMark($fontsize,$x,$y,$color,$text){
            $col = imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]);
            imagestring($this->image,$fontsize,$x,$y,$text,$col);
        }
        /*
         * 输出图片到浏览器中
         */
        public function show(){
           header('content-type:' . $this -> info['mime']);
            $fun='image' . $this->info['type'];
            $fun($this->image);
        }
    
        /**
         * 销毁图片
         */
        function __destruct(){
            imagedestroy($this->image);
        }
    }
    //对类的调用
    $obj = new Image_class('001.png');
    $obj->fontMark(20,20,30,array(255,255,255,60),'hello');
    $obj->show();
  • 相关阅读:
    python 找到列表中满足条件的元素
    android activity动画anim
    Maven实战(Maven+Nexus建立私服【Linux系统】)
    linux命令
    服务端工程师入门与进阶 Java 版
    jvm字节占用空间分析
    Spark Streaming容错的改进和零数据丢失
    Spark分布式计算和RDD模型研究
    Apache Curator入门实战
    spark简单总结—短小精悍
  • 原文地址:https://www.cnblogs.com/pjdsy/p/4759399.html
Copyright © 2020-2023  润新知