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 = "http://xxxxxx.com/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实现图片上传并等比例压缩相关推荐
- android h5 多图上传源码,JS移动端/H5同时选择多张图片上传并使用canvas压缩图片...
最近在做一个H5的项目,里边涉及到拍照上传图片的功能以及识别图片的功能,这里对识别图片的功能不做赘述,不属本文范畴.我在做完并上线项目后,同事跟我提了一个要求是可不可以同时选择多张图片上传,我做的时候 ...
- html图片上传布局,上传图片(压缩图片再上传),布局参考以前的文章(https://www.jianshu.com/p/d379ab1b3eec)...
引入一个js: 百度网盘链接:https://pan.baidu.com/s/1KO9gH4r6bP-foYVAQn5AxQ 提取码:mgcm 复制这段内容后打开百度网盘手机App,操作更方便哦 ht ...
- js图片压缩后上传方法,图片超过1M先进行压缩,然后再上传
js图片压缩后上传方法,图片超过1M先进行压缩,然后再上传 图片上传目录 js图片压缩后上传方法,图片超过1M先进行压缩,然后再上传 html代码 js代码 html代码 <input type ...
- 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传
现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片 ...
- 小程序图片裁剪插件image-cropper实现个人头像上传裁剪功能
小程序图片裁剪插件image-cropper实现个人头像上传裁剪功能 参考文档:小程序图片裁剪插件 image-cropper 整体效果流程图 一.第一步引入image-cropper,放在dist文 ...
- Android 拍照以及相册中选择(适配高版本)————上传多张照片之压缩处理、在线预览可伸缩放大(二)
______ Introduction ______ 前言 上一篇文章刚给大家总结完,关于上传头像的功能.此文章所述 主要是关于上传头像的具体流程以及如何对照片做裁剪处理,回调给控件显示:当然重中之重 ...
- php将上传的文件自动压缩,如何在服务器端实现文件自动压缩和解压
使用过虚拟主机时,有时需要备份或者更新过自己整个网站的内容.如果服务器支持压缩解压,那自然再好不过--备份时在后台生成压缩包,直接下载;更新时上传一个打包的压缩文件,在线解压即可.可是很不幸,很多空间 ...
- 图片上传至服务器实现压缩
2019独角兽企业重金招聘Python工程师标准>>> 1.缩略图压缩文件jar包 <!-- 图片缩略图 --><dependency><groupId ...
- 【Python黑科技】图片太大不能上传?三种压缩图片大小的方法(代码注释详细)
目录 实现效果 原图大小8.46MB PIL库quality降低图片质量方式压缩图片366KB PIL库thumbnail压缩图片大小来压缩图片985KB OpenCV缩放图片大小来压缩图片 177K ...
最新文章
- python学习笔记目录
- mysql begin end 批量更新_MySql中4种批量更新的方法
- Windows 2003不同域之间迁移密码方法笔记截图
- linux动态二进制翻译,仿真:解释和二进制翻译
- html dvi如何设置置顶不能空白位置,[html]关于html标签的一些总结
- 精益分析体系构建如何“因企制宜”?
- 卡内基·梅隆大学计算机科学系主任周以真的父母是中国人吗,一篇是王飞跃等人翻译的美国卡内基梅隆大学计算机科学系主任.PPT...
- python多线程编程(6): 队列同步
- 《需求工程》阅读笔记之三
- Google发转码工具 可将安卓程序转至iOS
- r语言中对向量求条件语句_R中的条件语句
- 虚拟机中运行windows内核
- 函数参数缺少const导致so无法加载
- LED背光源的使用寿命多久?
- DATAGUARD手记(DUPLICATE)(四)
- 小学计算机应用能力培训的计划,小学老师信息技术应用能力提升培训个人计划...
- io包下 文件类 字节流 字符流 缓冲流 转换流 序列化流 打印流
- 一键清除fla文件中的TLF文本
- 航空Ethernet嵌入式测试平台ETest
- ibm服务器密码破解_IBM Integration Bus中的密码术操作