如何使用php等比例缩放图片


Posted in PHP onOctober 12, 2016

本文介绍了PHP实现图片压缩方法,读者可以根据具体应用参考或加以改进,直接上代码,imgzip($src,$newwid,$newhei)这个函数带进去的分别是原图片、缩放要求的宽度、缩放的长度。

<?php 
//压缩图片 缩略图
$src= "xiezheng.jpg";
$newwid=640;
$newhei= 480;
function imgzip($src,$newwid,$newhei){
 $imgInfo = getimagesize($src);

 $imgType = image_type_to_extension($imgInfo[2], false);

 $fun = "imagecreatefrom{$imgType}";
//声明图片 打开图片 在内存中
 $image = $fun($src);
//方便配置长度宽度、高度,设置框为变量wid,高度为hei
 $wid=$imgInfo[0];
 $hei=$imgInfo[1];
//判断长度和宽度,以方便等比缩放,规格按照500, 320
 if($wid>$hei){
 $wid=$newwid;
 $hei=$newwid/($wid/$hei);
 }else {
 $wid = $newhei * ($wid / $hei);
 $hei = $newhei;
 }
//在内存中建立一张图片
 $images2 = imagecreatetruecolor($newwid, $newhei); //建立一个500*320的图片

//将原图复制到新建图片中
//imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)

 imagecopyresampled($images2, $image, 0, 0, 0, 0, $wid,$hei, $imgInfo[0],$imgInfo[1]);
//销毁原始图片
 imagedestroy($image);
//直接输出图片文件

 header("Content-type: ".$imgInfo['mime']);
 imagejpeg($images2);
//保存图片 到新文件
 imagejpeg($images2, 'new.jpg', 100); //10代码输出图片的质量 0-100 100质量最高
//销毁
 imagedestroy($images2);
}
imgzip($src,$newwid,$newhei);
?>

希望本文所述对大家对PHP程序设计有所帮助。

PHP 相关文章推荐
介绍php设计模式中的工厂模式
Jun 12 PHP
php 移除数组重复元素的一点说明
Nov 27 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
基于PHP中的常用函数回顾
Jul 11 PHP
php检测useragent版本示例
Mar 24 PHP
PHP中实现crontab代码分享
Mar 26 PHP
微信公众号判断用户是否已关注php代码解析
Jun 24 PHP
PHP使用自定义方法实现数组合并示例
Jul 07 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
Jul 03 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
实例讲解通过​PHP创建数据库
Jan 20 PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 #PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 #PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 #PHP
基于php实现的php代码加密解密类完整实例
Oct 12 #PHP
php fseek函数读取大文件两种方法
Oct 12 #PHP
PHP从二维数组得到N层分类树的实现代码
Oct 11 #PHP
php 无限分类 树形数据格式化代码
Oct 11 #PHP
You might like
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
php判断目录存在的简单方法
2019/09/26 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
chrome原生方法之数组
2011/11/30 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
2014/04/04 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
开源Web应用框架Django图文教程
2017/03/09 Python
Python的地形三维可视化Matplotlib和gdal使用实例
2017/12/09 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
小学红领巾广播稿(3篇)
2014/09/13 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
红色经典电影观后感
2015/06/18 职场文书
iPhone13再次曝光
2021/04/15 数码科技
详解nginx进程锁的实现
2021/06/14 Servers
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL