dcj3sjt126com 发表于 2013-2-7 00:54:21

PHP生成智能缩略图

 
<?phpclass resizeimage {//图片类型var $type;//实际宽度var $width;//实际高度var $height;//改变后的宽度var $resize_width;//改变后的高度var $resize_height;//是否裁图var $cut;//源图象var $srcimg;//目标图象地址var $dstimg;//临时创建的图象var $im;function resizeimage($img, $wid, $hei, $c, $dstpath) {$this->srcimg = $img;$this->resize_width = $wid;$this->resize_height = $hei;$this->cut = $c;//图片的类型$this->type = strtolower ( substr ( strrchr ( $this->srcimg, "." ), 1 ) );//初始化图象$this->initi_img ();//目标图象地址$this->dst_img ( $dstpath );$this->width = imagesx ( $this->im );$this->height = imagesy ( $this->im );//生成图象$this->newimg ();ImageDestroy ( $this->im );}function newimg() {//改变后的图象的比例$resize_ratio = ($this->resize_width) / ($this->resize_height);//实际图象的比例$ratio = ($this->width) / ($this->height);if (($this->cut) == "1") //裁图{if ($ratio >= $resize_ratio) //高度优先{$newimg = imagecreatetruecolor ( $this->resize_width, $this->resize_height );imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, (($this->height) * $resize_ratio), $this->height );ImageJpeg ( $newimg, $this->dstimg );}if ($ratio < $resize_ratio) //宽度优先{$newimg = imagecreatetruecolor ( $this->resize_width, $this->resize_height );imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width) / $resize_ratio) );ImageJpeg ( $newimg, $this->dstimg );}} else //不裁图{if ($ratio >= $resize_ratio) {$newimg = imagecreatetruecolor ( $this->resize_width, ($this->resize_width) / $ratio );imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width) / $ratio, $this->width, $this->height );ImageJpeg ( $newimg, $this->dstimg );}if ($ratio < $resize_ratio) {$newimg = imagecreatetruecolor ( ($this->resize_height) * $ratio, $this->resize_height );imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, ($this->resize_height) * $ratio, $this->resize_height, $this->width, $this->height );ImageJpeg ( $newimg, $this->dstimg );}}}//初始化图象function initi_img() {if ($this->type == "jpg") {$this->im = imagecreatefromjpeg ( $this->srcimg );}if ($this->type == "gif") {$this->im = imagecreatefromgif ( $this->srcimg );}if ($this->type == "png") {$this->im = imagecreatefrompng ( $this->srcimg );}}//图象目标地址function dst_img($dstpath) {$full_length = strlen ( $this->srcimg );$type_length = strlen ( $this->type );$name_length = $full_length - $type_length;$name = substr ( $this->srcimg, 0, $name_length - 1 );$this->dstimg = $dstpath;//echo $this->dstimg;}}$resizeimage = new resizeimage ( "11.jpg", "200", "150", "1", "17.jpg" );?>
页: [1]
查看完整版本: PHP生成智能缩略图