出错:imagecopyresampled() expects parameter 2 to be resource, null given in F:\PHP\muke\syin\images\image.class.php on line 27

来源:5-1 封装成类—压缩图片

qq_锋_2

2015-07-26 14:45

<?php

class Image{
    
    private $image;
    private $info;
    
    //打开图片
    public function  ww($src){
    //图片信息
    $info=getimagesize($src);
    $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 show(){
     header("Content-type".$this->info['mime']);
     $func="image{$this->info['type']}";
     $func($this->image);
 }
 //保存到硬盘中
  public function save($newname){
     $func="image{$this->info['type']}";
     $func($this->image,$newname.'.'.$this->info['type']);
  }
  //销毁图片
  public function __destruct(){
   imagedestroy($this->image);
  }

  }
?>

写回答 关注

2回答

  • smarty
    2015-11-21 17:23:36
      //打开图片
        public function  ww($src){

    应为构造函数,调用类的 时候自动执行,你没有,所以,找不到资源

  • vonmarshall
    2015-10-21 17:39:03
    <?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 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);	
    	}
    	
    }
    ?>

    看看这个  

GD库实现图片水印与缩略图

带你快速高效的完成图片处理工作,还可以加深对面向对象的理解

19006 学习 · 162 问题

查看课程

相似问题