コード例 #1
0
ファイル: image.class.php プロジェクト: panhongsheng/zl_cms
    function thumb($image, $filename = '', $maxwidth = 200, $maxheight = 200, $suffix='', $autocut = 0, $ftp = 0) {
		if(!$this->thumb_enable || !$this->check($image)) return false;
        $info  = image::info($image);
        if($info === false) return false;
		$srcwidth  = $info['width'];
		$srcheight = $info['height'];
		$pathinfo = pathinfo($image);
		$type =  $pathinfo['extension'];
		if(!$type) $type = $info['type'];
		$type = strtolower($type);
		unset($info);

		$creat_arr = $this->getpercent($srcwidth,$srcheight,$maxwidth,$maxheight);
		$createwidth = $width = $creat_arr['w'];
		$createheight = $height = $creat_arr['h'];

		$psrc_x = $psrc_y = 0;
		if($autocut && $maxwidth > 0 && $maxheight > 0) {
			if($maxwidth/$maxheight<$srcwidth/$srcheight && $maxheight>=$height) {
				$width = $maxheight/$height*$width;
				$height = $maxheight;
			}elseif($maxwidth/$maxheight>$srcwidth/$srcheight && $maxwidth>=$width) {
				$height = $maxwidth/$width*$height;
				$width = $maxwidth;
			}
			$createwidth = $maxwidth;
			$createheight = $maxheight;
		}
		$createfun = 'imagecreatefrom'.($type=='jpg' ? 'jpeg' : $type);
		$srcimg = $createfun($image);
		if($type != 'gif' && function_exists('imagecreatetruecolor'))
			$thumbimg = imagecreatetruecolor($createwidth, $createheight); 
		else
			$thumbimg = imagecreate($width, $height); 

		if(function_exists('imagecopyresampled'))
			imagecopyresampled($thumbimg, $srcimg, 0, 0, $psrc_x, $psrc_y, $width, $height, $srcwidth, $srcheight); 
		else
			imagecopyresized($thumbimg, $srcimg, 0, 0, $psrc_x, $psrc_y, $width, $height,  $srcwidth, $srcheight); 
		if($type=='gif' || $type=='png') {
			$background_color  =  imagecolorallocate($thumbimg,  0, 255, 0);  //  指派一个绿色  
			imagecolortransparent($thumbimg, $background_color);  //  设置为透明色,若注释掉该行则输出绿色的图 
		}
		if($type=='jpg' || $type=='jpeg') imageinterlace($thumbimg, $this->interlace);
		$imagefun = 'image'.($type=='jpg' ? 'jpeg' : $type);
		if(empty($filename)) $filename  = substr($image, 0, strrpos($image, '.')).$suffix.'.'.$type;
		$imagefun($thumbimg, $filename);
		imagedestroy($thumbimg);
		imagedestroy($srcimg);
		if($ftp) {
			@unlink($image);
		}
		return $filename;
    }
コード例 #2
0
ファイル: s_picture.php プロジェクト: mjiong/framework
 static function zoom($picture, $file_name = array('eq80_test.png', 'file/create/'), $length, $is_height = false)
 {
     $image = image::open($picture);
     $start_width = image::info($image, 'width');
     $start_height = image::info($image, 'height');
     $end_width = $length;
     $end_height = round($start_height * $end_width / $start_width);
     if ($is_height) {
         $end_width = round($start_width * $length / $start_height);
         $end_height = $length;
     }
     $canvas = image::create($end_width, $end_height, 'ffffff', true);
     $param = array(0, 0, 0, 0, $end_width, $end_height, $start_width, $start_height);
     image::copy($canvas, $image, $param, 4);
     image::save($canvas, $file_name[0], $file_name[1]);
     return $file_name[1] . $file_name[0];
 }
コード例 #3
0
ファイル: file.php プロジェクト: dalinhuang/zotop
 public function upload()
 {
     //上传文件
     $this->files = $this->upload->save();
     //设置错误
     if ($this->upload->error()) {
         $this->error($this->upload->error(), $this->upload->msg());
     }
     if (is_array($this->files)) {
         //保存文件
         $ip = ip::current();
         $userid = $this->_user['id'];
         $description = (array) $this->description;
         foreach ($this->files as $key => $file) {
             $file['id'] = $file['id'];
             $file['parentid'] = $file['id'];
             $file['globalid'] = $this->globalid;
             $file['groupid'] = $this->folderid;
             $file['field'] = $this->field;
             $file['type'] = file::type($file['path']);
             $file['description'] = empty($description[$key]) ? $file['description'] : $description[$key];
             $file['userid'] = $userid;
             $file['status'] = (int) $this->status;
             $file['createip'] = $ip;
             $file['createtime'] = TIME;
             if ($file['type'] == 'image' || preg_match('/^(jpeg|jpeg|png|gif|bmp|ico|tif|tiff|psd|xbm|xcf)$/', $file['ext'])) {
                 $info = image::info($file['path']);
                 $file['width'] = (int) $info['width'];
                 $file['height'] = (int) $info['height'];
             }
             $this->insert($file);
         }
         return $this->files;
     }
     return array();
 }