php实现图片按比例截取的方法


Posted in PHP onFebruary 06, 2017

本文实例讲述了php实现图片按比例截取的方法。分享给大家供大家参考,具体如下:

filename = 'img/test.jpg';
$all_type = array(
"jpg"  => array("create"=>"ImageCreateFromjpeg", "output"=>"imagejpeg"  , "exn"=>".jpg"),
"gif"  => array("create"=>"ImageCreateFromGIF" , "output"=>"imagegif"  , "exn"=>".gif"),
"jpeg"  => array("create"=>"ImageCreateFromjpeg", "output"=>"imagejpeg"  , "exn"=>".jpg"),
"png"  => array("create"=>"imagecreatefrompng" , "output"=>"imagepng"  , "exn"=>".png"),
"wbmp"  => array("create"=>"imagecreatefromwbmp", "output"=>"image2wbmp" , "exn"=>".wbmp")
);
$imgtype = getimagesize($filename);
$width = $imgtype[0];
$height = $imgtype[1];
$type = str_replace('image/','',$imgtype['mime']);
$func_create = $all_type[$type]['create'];
$func_output = $all_type[$type]['output'];
$x = $y =0;
if(($width * 100)>($height * 120))
{
$newwidth = ceil($height * 120/100);
$newheight = $height;
$x = ($width-$newwidth)/2;
}
elseif(($width * 100)<($height * 120))
{
$newheight = ceil($width * 100/120);
$newwidth = $width;
$y = ($height-$newheight)/2;
}
else
{
$newheight = $height;
$newwidth = $width; 
}
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = $func_create($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $newwidth, $newheight);
// Output
$func_output($thumb,'a.jpeg');
PHP 相关文章推荐
PHP中的串行化变量和序列化对象
Sep 05 PHP
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
Windows下利用Gvim写PHP产生中文乱码问题解决方法
Apr 20 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
php调用google接口生成二维码示例
Apr 28 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
php的PDO事务处理机制实例分析
Feb 16 PHP
PHP开发实现快递查询功能详解
Apr 08 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
Nov 04 PHP
浅谈Laravel中使用Slack进行异常通知
May 29 PHP
php实现的中文分词类完整实例
Feb 06 #PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 #PHP
php使用变量动态创建类的对象用法示例
Feb 06 #PHP
PHP单例模式定义与使用实例详解
Feb 06 #PHP
PHP第三方登录―QQ登录实现方法
Feb 06 #PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 #PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 #PHP
You might like
php 静态页面中显示动态内容
2009/08/14 PHP
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
tab栏切换原理
2017/03/22 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
Python实现的一个简单LRU cache
2014/09/26 Python
Python求导数的方法
2015/05/09 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
python Pygame的具体使用讲解
2017/11/03 Python
Python爬取商家联系电话以及各种数据的方法
2018/11/10 Python
在python中画正态分布图像的实例
2019/07/08 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
网络教育自我鉴定
2014/02/04 职场文书
酒店端午节活动方案
2014/08/26 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
辞职信怎么写
2015/02/27 职场文书
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS
HTML+JS实现在线朗读器
2022/02/15 Javascript
日元符号 ¥
2022/02/17 杂记
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js