简介 目录 评价 推荐
  • 5769727 2019-09-07

    注意视频里写的两个info:
    函数里的$info和$this->info是不同的变量


    0赞 · 0采集
  • 5769727 2019-09-07

    <?php

    class Image{

    private $image;

    private $info;

    public function __construct($src)

    {

    $info2 = getimagesize($src);

    $this->info = array(

    'width' => $info2[0],

    'height' => $info2[1],

    'type' => image_type_to_extension($info2['2'],false),

    'mime' => $info2['mime']

    );

    $fun = "imagecreatefrom{$this->info['type']}";

    $this->image = $fun($src);

    }




    public function thumb($width,$height)

    {

    $image_thumb = imagecreatetruecolor($width, $height);

    imagecopyresampled($image_thumb, $this->image, 0, 0, 0, 0, $width, $height, $this->info['width'],$this->info['height']);

    imagedestroy($this->image);

    $this->image = $image_thumb;

    }


    public function show()

    {

    header("Content-type:".$this->info['mime']);

    $funs = "image{$this->info['type']}";

    $funs($this->image);

    }


    public function save($newimage)

    {

    $funs = "image{$this->info['type']}";

    $funs($this->image,$newname.'.'.$this->info['type']);

    }



    public function __destruct()

    {

    imagedestroy($this->image);

    }

    }


    ?>


    0赞 · 0采集
  • AXD 2018-08-02

    <title>给图片添加图片水印</title>

    <?php

    /*一、打开图片*/


    $src = "001.png";

    $info = getimagesize($src);

    $type = image_type_to_extension($info[2],false);

    $fun = "imagecreatefrom{$type}";

    $image = $fun($src);

    /*二、操作图片*/


    $image_Mark = "logo.png";

    $info2 = getimagesize($image_Mark);

    $type2 = image_type_to_extension($info[2],false);

    $fun2 = "imagecreatefrom{$type2}";

    $water = $fun2($image_Mark);

    //合并图片  0,0,$info[0],$info[1]将水印图片从原图的左上角顶点开始复制,0,0代表有多高复制多高,有多宽复制多宽。

    imagecopymerge($image,$water,20,30,0,0,$info2[0],$info2[1],30);

    imagedestroy($water);

    /*三、输出图片*/


    ob_clean();

    header("content-type:".$info['mime']);

    $funs = "image{$type}";

    $funs($image);

    $funs($image,"hi.".$type);  //保存图片

    /*四、销毁图片*/


    imagedestroy($image);

    ?>


    0赞 · 0采集
  • 孤月王珏 2018-05-25

    teat.php

    <?php 
        require "image_class.php";
        $src = '1.jpg';
        $image = new Image($src);
        $image->thumb(300,200);
        $image->show();


    0赞 · 1采集
  • 孤月王珏 2018-05-25

    我的经过测试没有问题(代码如下):

    <?php 
    //封装成类-压缩图片
    class Image{	
        private $image;
        private $info;	
        //1.打开一张图片,读取到内存中	
        public function __construct($src){		
            $info = getimagesize($src);//获取图片信息放在$info里		
            $this->info = array(			
            'width' => $info[0],			
            'height' => $info[1],			
            'type' => image_type_to_extension($info[2],false),			
            'mime' => $info['mime']);		
            $fun = "imagecreatefrom{$this->info['type']}";		
            $this->image = $fun($src);	}	
            //2.操作图片(压缩)	
            public function thumb($width,$height){		
                $image_thumb = imagecreatetruecolor($width,$height);		
                imagecopyresampled($image_thumb,$this->image,0,0,0,0,$width,$height,$this->info['width'],$this->info['height']);		
                imagedestroy($this->image);		
                $this->image = $image_thumb;	
            }	
            //3.在浏览器中输出图片	
            public function show(){		
                header("Content-type:".$this->info['mime']);		
                $funs = "image{$this->info['type']}";		
                $funs($this->image);	
            }	
            //4.把图片保存到硬盘里	
            public function save($newname){		
                $funs = "image{$this->info['type']}";		
                $funs($this->image,$newname.'.'.$this->info['type']);	
            }	//5.销毁图片	
            public function __destruct(){		
                    imagedestroy($this->image);	
            }
         }


    0赞 · 1采集
  • 慕姐9513669 2018-03-07
    笔记1
    截图
    0赞 · 0采集
  • XMYL 2017-12-05
    成功了,代码如下: header('Content-type:text/html;charset=utf8'); //打开图片 $pic_src='p02.jpg'; $pic_info=getimagesize($pic_src); $pic_type=image_type_to_extension($pic_info[2],false); $fun="imagecreatefrom{$pic_type}"; $image=$fun($pic_src); //操作图片 $font='msyh.ttf'; $content='您好,翌创'; $col=imagecolorallocatealpha($image,255,255,255,50); imagettftext($image,20,0,20,30,$col,$font,$content); //输出图片 header("Content-type:".$pic_info['mime']); $func="image{$pic_type}"; $func($image); //保存图片 $func($image,'images/new.'.$pic_type); //清理图片 imagedestory($images);
    0赞 · 0采集
  • 小尾巴都糊了 2017-11-29
    test.php <?php require "image.class.php"; $src = "image/test.jpg"; $image = new Image($src); $image->image_Thumb(300,200); $image->image_Show(); $image->image_Destroy(); ?>
    0赞 · 0采集
  • 小尾巴都糊了 2017-11-29
    image.class.php <?php /** * 图片工具类 */ class Image{ private $image; private $info; /** * 构造函数 */ public function __construct($src){ //获取图片信息 $info = getimagesize($src); $this->info = array( 'width' => $info[0], 'height' => $info[1], 'type' => image_type_to_extension($info[2],false), 'mime' => $info[3] ); //在内存中创建一个相同类型的图片 $new_cache = "imagecreatefrom{$this->info['type']}"; $this->image = $new_cache($src); }
    0赞 · 0采集
  • 小尾巴都糊了 2017-11-29
    /** * 操作图片 缩略图 */ public function image_Thumb($dstWidth,$dstHeight){ $image_thumb = imagecreatetruecolor($dstWidth,$dstHeight); imagecopyresampled($image_thumb,$this->image,0,0,0,0,$dstWidth,$dstHeight,$this->info['width'],$this->info['height']); //原始图片已使用完毕 可以销毁 imagedestroy($this->image); $this->image = $image_thumb; } /** * 显示图片 */ public function image_Show(){ header("content-type:".$this->info['mime']); $new_cache = "image{$this->info['type']}"; $new_cache($this->image); } /** * 销毁图片 */ public function image_Destroy(){ imagedestroy($this->image); } } ?>
    0赞 · 0采集
  • 小尾巴都糊了 2017-11-29
    <?php /*打开图片*/ //1.配置图片路径 $src_url = "image/GD_test.png"; //2.获取图片信息 $info = getimagesize($src_url); // echo "<pre>"; //print_r($info); //3.通过图片编号来确认图片类型,取消false参数获取值为 .png ; $type = image_type_to_extension($info[2],false); // print_r($type); //4.在内存中创建一个和打开图片类型一样的图像 $fun = "imagecreatefrom{$type}"; //相当于 $fun = imagecreatefrompng(); //5.把图片复制到内存中 $image = $fun($src_url); //相当于 imagecreatefrompng($src) /*操作图片*/ //1.设置字体路径 $font = "image/msyhl.ttc"; //2.填写水印内容 $content = "xiaoweiba.ml"; //3.设置字体颜色RGB值和透明度, //参数1:内存中的图片; 参数2:颜色; 参数3:透明度 //注意!!! png图片无法正常渲染字体颜色!!!! $col = imagecolorallocatealpha($image,0,0,0,15);
    0赞 · 0采集
  • 小尾巴都糊了 2017-11-29
    imagettftext($image,20,0,20,30,$col,$font,$content); /*输出图片*/ //1.浏览器输出 header("Content-type:".$info['mime']); $func = "image{$type}"; //如果是jpeg就调用 imagejpeg()方法,如果是peg就会调用imagepng()方法 $func($image); //2.保存图片 $func($image,'image/newimage.'.$type); //imagepng($image,'image/newimage.png'); //显示图片 //输出生成的图片,配置文件路径 $src_new = "image/newimage.png"; //无法直接输出图片,必须将图片复制到内存中。 $fun_new = imagecreatefrompng($src_new); //输出图片 imagepng($fun_new); // imagepng(imagecreatefrompng("image/newimage.png")); /*销毁图片*/ imagedestroy($image); imagedestroy($fun_new); ?>
    0赞 · 0采集
  • Gigure 2017-09-27
    /* 输出图片 */ public function show() { header("Content-type:".$this->info['mime']); $funs="image{$this->info['type']}"; $funs($this->image); } /* 保存图片 */ public function save($newImage) { $funs="image{$this->info['type']}"; $funs($this->image,$newImage.'.'.$this->info['type']); } /* 销毁图片 */ public function __destruct() { imagedestroy($this->image); } } ?>
    0赞 · 0采集
  • Gigure 2017-09-27
    /** * 封装成类---压缩图片 */ class Image { // 图片的基本信息 private $info; // 内存中的图片 private $image; public function __construct($src) { // 打开一张图片,读取到内存中 $info=getimagesize($src); $this->info=array( 'width'=>$info[0], 'height'=>$info[1], 'type'=>image_type_to_extension($info[2],false), 'mime'=>$info['mime'] ); $fun="imagecreatefrom{$this->info['type']}"; $this->image=$fun($src); } /* 压缩图片 */ public function thumb($width,$height) { $image_thumb=imagecreatetruecolor($width,$width); imagecopyresampled($image_thumb,$this->image,0,0,0,0,$width,$height,$this->info['width'],$this->info['height']); imagedestroy($this->image); $this->image=$image_thumb; }
    0赞 · 0采集
  • Gigure 2017-09-27
    /*二,操作图片*/ // 1,在内存中建立一个宽:300,高:200的真色彩图片 $image_thumb=imagecreatetruecolor(300,200); // 2,核心步骤:将原图复制到新建的真色彩图片上,并按照一定比例压缩 imagecopyresampled($image_thumb,$image,0,0,0,0,300,200,$info[0],$info[1]); // 3,销毁原始图片 imagedestroy($image);
    0赞 · 0采集
  • Gigure 2017-09-27
    /*二,操作图片*/ (1)设置水印图片的路径 $image_Mark = "weixin.png"; (2)获取水印图片的基本信息 $info2 = getimagesize($image_Mark); (3)3通过水印的图像编号来获取水印的图片类型 $type2 = image_type_to_extension($info2[2],false); (4)生成函数(名),实现根据不同的图像类型 调用 不同的GD库图像创建函数 $fun2 = "imagecreatefrom{$type2}"; (5)内存中创建图片 $water = $fun2($image_Mark); (6)合并图片(给源图片添加水印图片) //imagecopymerge(源图片,水印图片,源图片X轴位置,源图片中轴位置,水印图片X轴位置,水印图片Y轴位置,水印图片显示宽度,水印图片显示高度,水印图片透明度); //通过 源图片X轴位置 和源图片Y轴位置 控制 水印图片 在 源图片 中的位置; //通过 水印图片X轴位置,水印图片Y轴位置,水印图片显示宽度,水印图片显示高度 控制 显示 水印图片 的那一部分. imagecopymerge($image,$water,20,30,0,0,$info2[0],$info2[1],30); (7)销毁水印图片 imagedestroy($water);
    截图
    0赞 · 0采集
  • Gigure 2017-09-27
    /*一,打开图片*/ // 1、配置图片路径 $src='pexels.jpeg'; // 2,获取图片的基本信息 $info=getimagesize($src); // 3,通过图像的编号获取图片类型 $type=image_type_to_extension($info,false); // 4,在内存中创建相同类型的图像 $fun="imagecreatefrom{$type}"; // 5,将要操作的图像复制到内存中 $image=$func($src);
    截图
    0赞 · 0采集
  • Gigure 2017-09-27
    C.输出(保存)图像 //生成函数(名),实现根据不同的图像类型 调用 不同的GD库图像输出函数: $func="image{$type}"; //浏览器输出 $func($image); //保存图片 $func($image,'newimage.'.{$type}); //参数1:源图片 参数2:保存路径+生成图片名 D.销毁图片 imagedestory($image);
    0赞 · 0采集
  • Gigure 2017-09-27
    B.操作图片 (1)设置字体的路径 $font = '..ttf'; (2)设置文字水印内容 $content = '你好,php'; (3)设置 源图片所在画布 将使用的颜色(相当于为画布分配画笔颜色), $col= imagecolorallocatealpha($image,255,255,255,50) //$image为源图片 三个255表示颜色(RGB类型) 50表示透明度 (4)写入水印文字 imagetfftext($image,'字体大小','旋转角','x轴偏移量','y轴偏移量',$col,$font,$content,)
    0赞 · 0采集
  • Gigure 2017-09-27
    素材准备: 1.原图片不要用中文命名。 2.使用小图作为水印。 3.字体库,windows有自带的字体库。(C:/Windows/Fonts) 4.开启GD库:xamp->打开php.ini->查找gd2->把extension=php_gd2.dll前面的;去掉。保存文件。
    截图
    0赞 · 0采集
  • qq_懿切瀡缘_1 2017-05-10
    我出现图片不存在主要是因为把双引号变成了单引号
    0赞 · 0采集
  • qq_懿切瀡缘_1 2017-05-10
    <?php /*打开图片*/ //1.配置图片路径 $src="123.jpg"; //2.获取图片信息 $info=getimagesize($src); //3.通过编号来获取图片类型 $type=image_type_to_extension($info[2],false); //4.在内存中建立一个和图片类型一样的图像 $fun="imagecreatefrom{$type}"; $image=$fun($src);//imagecreatefromjpeg($src); //操作图片 //1.在内存中建立一个宽300,高200的真色彩图片 //$image_thumb=imagecreatetruecolor(300, 200); //1.设置水印路径 $image_mark="002.jpg"; //2.核心步骤:将原图复制到新建的真色彩图片上,并且按照一定比例压缩 //imagecopyresampled(, image, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h) //2.获取水印图片信息 $info2=getimagesize($image_mark); //3.通过水印的图像编号获取水印的图片类型 $type2=image_type_to_extension($info2[2],false); //4.在内存中创建一个和我们的水印图片一致的图片类型 $fun2="imagecreatefrom{$type2}"; //5.把水印图片复制到内存中 $water=$fun2($image_mark); //6.合并图片 imagecopymerge($image,$water,20,30,0,0,$info2[0],$info2[1],50); //7.销毁水印图片 imagedestroy($water); //输出图片 //在浏览器中输出图片 header("Content-type:".$info['mime']); $funs="image{$type}"; $funs($image); //保存图片 $funs($image,"wateryellow.".$type); //销毁图片 imagedestroy($image); ?>
    0赞 · 1采集
  • 黄枪枪 2017-03-18
    (下) // 图片添加图片水印 public function imageMark($sourceMark,$local,$alpha){ $infoMark = getimagesize($sourceMark); $typeMark = image_type_to_extension($infoMark[2],false); $funMark = "imagecreatefrom{$type2}"; $water = $funMark($sourceMark); imagecopymerge($this->image,$water,$local['x'],$local['y'],0,0,$infoMark[0],$infoMark[1],$alpha); imagedestroy($water); } //在浏览器中输出图片 public function show(){ header("Content-type:".$this->info['mime']); $funs = "image{$this->info['type']}"; $funs($this->image); } //把图片保存在硬盘里 public function save($newname){ $funs = "image{$this->info['type']}"; $funs($this->image,$newname.'.'.$this->info['type']); } //销毁图片 public function __destruct(){ imagedestroy($this->image); } } ?> PS: 此封装类,为完整封装
    1赞 · 1采集
  • 黄枪枪 2017-03-18
    (上) <?php class Image{ private $image; //内存中的图片 private $info; //图片的基本信息 //打开一张图片,读取到内存中 public function __construct($src){ $info = getimagesize($src); $this->info=array( 'width'=>$info[0], 'height'=>$info[1], 'type'=>image_type_to_extension($info['2'],false), 'mime'=>$info['mime'] ); $fun = "imagecreatefrom{$this->info['type']}"; $this->image=$fun($src); } //按宽高值缩放图片 public function thumb($width,$height){ $image_thumb = imagecreatetruecolor($width,$height); imagecopyresampled($image_thumb,$this->image,0,0,0,0,$width,$height,$this->info['width'],$this->info['height']); imagedestroy($this->image);//销毁原图像 $this->image = $image_thumb;//用压缩图片代替内存中原图像 } // 图片添加文字水印 public function fontMark($content,$font_url,$size,$color,$local,$angle){ //设置字体颜色和透明度 $col = imagecolorallocatealpha($this->image,$color['R'],$color['G'],$color['B'],$color['A']); //写入文字 imagettftext($this->image,$size,$angle,$local['x'],$local['y'],$col,$font_url,$content); }
    1赞 · 1采集
  • 黄枪枪 2017-03-18
    B.操作图片 要实现缩略图的话,得把原图压缩在一个真彩色图像(相当于空白画板)里(控制画板的长和宽) 1.在内存中建立一个真色彩画布 $image_thumb = imagecreatetruecolor(300,200)//创建300*200的真彩色图像空白画布 2.将原图压缩在新建的真色彩画布上 //imagecopyresampled(真色彩图片画布,源图片文件,真色彩图片起始位置x,真色彩图片起始位置y,源图片文件起始位置x,源图片文件起始位置y,真色彩图片终止位置x,真色彩图片终止位置y,源图片文件终止位置x,源图片文件终止位置y); //通过 真色彩图片起始位置x,真色彩图片起始位置y,,真色彩图片终止位置x,真色彩图片终止位置y 来控制载入源图片的位置 //通过 源图片文件x轴,源图片文件y轴,源图片文件终止位置x,源图片文件终止位置y 来控制载入源图片的内容 imagecopyresampled($image_thumb,$image,0,0,0,0,300,200,info[0],info[1]); 3.销毁内存中的源图片 imagedestory($image);
    1赞 · 1采集
  • 黄枪枪 2017-03-18
    A.打开图片(与添加文字水印的A步骤完全相同)
    截图
    0赞 · 1采集
  • 黄枪枪 2017-03-18
    C+D.保存和销毁图片(与添加文字图片的C,D步骤完全相同,唯一不同的是 函数名字符串变量 不同))
    截图
    0赞 · 0采集
  • 黄枪枪 2017-03-18
    B.操作图片 (1)设置水印图片的路径 $image_Mark = "weixin.png"; (2)获取水印图片的基本信息 $info2 = getimagesize($image_Mark); (3)3通过水印的图像编号来获取水印的图片类型 $type2 = image_type_to_extension($info2[2],false); (4)生成函数(名),实现根据不同的图像类型 调用 不同的GD库图像创建函数 $fun2 = "imagecreatefrom{$type2}"; (5)内存中创建图片 $water = $fun2($image_Mark); (6)合并图片(给源图片添加水印图片) //imagecopymerge(源图片,水印图片,源图片X轴位置,源图片中轴位置,水印图片X轴位置,水印图片Y轴位置,水印图片显示宽度,水印图片显示高度,水印图片透明度); //通过 源图片X轴位置 和源图片Y轴位置 控制 水印图片 在 源图片 中的位置; //通过 水印图片X轴位置,水印图片Y轴位置,水印图片显示宽度,水印图片显示高度 控制 显示 水印图片 的那一部分. imagecopymerge($image,$water,20,30,0,0,$info2[0],$info2[1],30); (7)销毁水印图片 imagedestroy($water);
    0赞 · 1采集
  • 黄枪枪 2017-03-18
    A.打开图片(与添加文字水印的A步骤完全相同,唯一不同的是 函数名字符串变量 不同)
    截图
    0赞 · 0采集
  • 黄枪枪 2017-03-18
    C.输出(保存)图像 //生成函数(名),实现根据不同的图像类型 调用 不同的GD库图像输出函数: $func="image{$type}"; //浏览器输出 $func($image); //保存图片 $func($image,'newimage.'.{$type}); //参数1:源图片 参数2:保存路径+生成图片名 D.销毁图片 imagedestory($image);
    1赞 · 1采集
数据加载中...
开始学习 免费