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 相关文章推荐
一个简单的域名注册情况查询程序
Oct 09 PHP
新手学PHP之数据库操作详解及乱码解决!
Jan 02 PHP
php csv操作类代码
Dec 14 PHP
基于php缓存的详解
May 15 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
浅析Apache中RewriteCond规则参数的详细介绍
Jun 30 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
PHP基于yii框架实现生成ICO图标
Nov 13 PHP
php利用header函数下载各种文件
Aug 24 PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 PHP
PHP的PDO预定义常量讲解
Jan 24 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防注入安全代码
2008/04/09 PHP
php封装的page分页类完整实例
2016/10/18 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
原生js实现数字字母混合验证码的简单实例
2015/12/10 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
js 显示日期时间的实例(时间过一秒加1)
2017/10/25 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
简单了解python代码优化小技巧
2019/07/08 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
什么是lambda函数
2013/09/17 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
幼儿园园长六一致辞
2015/07/31 职场文书
个人合作协议范本
2015/08/06 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
AJAX学习笔记
2021/05/18 Javascript
详解Python中__new__方法的作用
2022/03/31 Python