1. 云栖社区>
  2. PHP教程>
  3. 正文

PHP生成智能缩略图

作者:用户 来源:互联网 时间:2017-12-01 14:01:35

php智能生成缩略

PHP生成智能缩略图 - 摘要: 本文讲的是PHP生成智能缩略图,   <?phpclass resizeimage {//图片类型var $type;//实际宽度var $width;//实际高度var $height;//改变后的宽度var $resize_width;//改变后的高度var $


 


<?php
class 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");
?>

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 智能 , 生成 缩略 ,以便于您获取更多的相关知识。