php 图片等比例最大宽,PHP按最大宽高等比例缩放图片类

支持jpg、png、gif格式<?php

class slpic {

//原图片文件,包含路径和文件名

var $orpic;

//原图的临时图像

var $tempic;

//缩略图

var $thpic;

//原宽度

var $width;

//原高度

var $height;

//图片类型

var $type;

//缩略后的宽度

var $thwidth;

//缩略后的高度

var $thheight;

function __construct($file){

$this->orpic = $file;

$infos = getimagesize($file);

$this->width = $infos[0];

$this->height = $infos[1];

$this->type = $infos[2];

}

//根据用户所指定最大宽高来计算缩略图尺寸

function cal_size($maxwidth, $maxheight){

//缩略图最大宽度与最大高度比

$thcrown = $maxwidth/$maxheight;

//原图宽高比

$crown = $this->width/$this->height;

if($crown/$thcrown >= 1){

$this->thwidth = $maxwidth;

$this->thheight = $maxwidth/$crown;

} else {

$this->thheight = $maxheight;

$this->thwidth = $maxheight*$crown;

}

}

function init(){

switch($this->type){

case 1: //GIF

$this->tempic = imagecreatefromgif($this->orpic);

break;

case 2: //JPG

$this->tempic = imagecreatefromjpeg($this->orpic);

break;

case 3: //PNG

$this->tempic = imagecreatefrompng($this->orpic);

break;

default:

echo '暂不支持该图片格式';

}

}

function resize($maxwidth, $maxheight){

//初始化图像

$this->init();

//计算出缩略图尺寸

$this->cal_size($maxwidth, $maxheight);

$this->thpic = imagecreatetruecolor($this->thwidth, $this->thheight);

imagecopyresampled($this->thpic, $this->tempic, 0, 0, 0 ,0, $this->thwidth, $this->thheight, $this->width, $this->height);

}

function save($filename, $type){

switch($type){

case 'jpg':

case 'jpeg':

imagejpeg($this->thpic, $filename);

break;

case 'png':

imagepng($$this->thpic, $filename);

break;

case 'gif':

imagegif($$this->thpic, $filename);

break;

default:

echo '暂不支持您所选择的格式';

}

}

}

?>

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值