网站地图    收藏   

主页 > 后端 > php资料库 >

php 生成缩略图:PHP生成智能缩略图_自学php网

来源:自学PHP网    时间:2014-12-04 22:12 作者: 阅读:

[导读] ?php class resizeimage { //图片类型 var $type; //实际宽度 var $width; //实际高度 var $height; //改变后的宽度 var $resize_width; //改变后的高度 var $resize_height; //是否裁图 var $cut; //源图象 var $srcimg; //目标...

<?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 );

}

}

//图象目标地址
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论