失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php图片等比例压缩 php实现图片上传并等比例压缩

php图片等比例压缩 php实现图片上传并等比例压缩

时间:2021-03-02 16:17:33

相关推荐

php图片等比例压缩 php实现图片上传并等比例压缩

分为两个文件,采用原始php简单粗暴的说明用法

shenshu.php 接收2个GET参数orderid,account。后面的类会根据此参数创建目录

申诉

申诉

文件名:

upload_shenshu.php

header("Content-type: text/html; charset=utf-8");

$orderid=$_POST['orderid'];

$account=$_POST['account'];

$path = dirname(__DIR__)."/upload/shenshu/$account/$orderid/";

if (!is_dir($path)){

mkdir ($path,0777,true);

}

//文件后缀

$houzui = pathinfo($_FILES['upfile']['name']);

//文件名

$filename = $account.'_'.$orderid.'.'.$houzui['extension'];

$imgurl = "/upload/shenshu/$account/$orderid/".$filename;

$FILE_SAVE_PATH = '../upload/shenshu/'.$account.'/'.$orderid.'/'.$filename;

if(move_uploaded_file($_FILES['upfile']['tmp_name'],$FILE_SAVE_PATH)){

$image = new Image($FILE_SAVE_PATH);

$image->percent = 0.2;

$image->openImage();

$image->thumpImage();

$image->showImage();

unlink($FILE_SAVE_PATH);

$image->saveImage($FILE_SAVE_PATH);

echo '

上传成功

'."

";

echo "

您的账号为$account

";

echo "";

}

class Image{

private $src;

private $imageinfo;

private $image;

public $percent = 0.1;

public function __construct($src){

$this->src = $src;

}

/**

打开图片

*/

public function openImage(){

list($width, $height, $type, $attr) = getimagesize($this->src);

$this->imageinfo = array(

'width'=>$width,

'height'=>$height,

'type'=>image_type_to_extension($type,false),

'attr'=>$attr

);

$fun = "imagecreatefrom".$this->imageinfo['type'];

$this->image = $fun($this->src);

}

/**

操作图片

*/

public function thumpImage(){

$new_width = $this->imageinfo['width'] * $this->percent;

$new_height = $this->imageinfo['height'] * $this->percent;

$image_thump = imagecreatetruecolor($new_width,$new_height);

//将原图复制带图片载体上面,并且按照一定比例压缩,极大的保持了清晰度

imagecopyresampled($image_thump,$this->image,0,0,0,0,$new_width,$new_height,$this->imageinfo['width'],$this->imageinfo['height']);

imagedestroy($this->image);

$this->image = $image_thump;

}

/**

输出图片

*/

public function showImage(){

header('Content-Type: image/'.$this->imageinfo['type']);

$funcs = "image".$this->imageinfo['type'];

$funcs($this->image);

}

/**

保存图片到硬盘

*/

public function saveImage($name){

$funcs = "image".$this->imageinfo['type'];

$funcs($this->image,$name.'.'.$this->imageinfo['type']);

}

/**

销毁图片

*/

public function __destruct(){

imagedestroy($this->image);

}

}

如果觉得《php图片等比例压缩 php实现图片上传并等比例压缩》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。