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 相关文章推荐
JAVA/JSP学习系列之七
Oct 09 PHP
关于时间计算的结总
Dec 06 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
Jun 13 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
用mysql_fetch_array()获取当前行数据的方法详解
Jun 05 PHP
php检查字符串中是否包含7位GSM字符的方法
Mar 17 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
yii2 开发api接口时优雅的处理全局异常的方法
May 14 PHP
PHP扩展类型及安装方式解析
Apr 27 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 PHP
PHP队列场景以及实现代码实例详解
Feb 26 PHP
php+laravel 扫码二维码签到功能
May 15 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中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
PHP文件上传类实例详解
2016/04/08 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
Koa项目搭建过程详细记录
2018/04/12 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
python3 拼接字符串的7种方法
2018/09/12 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
python使用zip将list转为json的方法
2018/12/31 Python
python加载自定义词典实例
2019/12/06 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
python线程优先级队列知识点总结
2021/02/28 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
会计毕业生自我鉴定
2013/11/04 职场文书
找工作最新求职信
2013/12/22 职场文书
运动会广播稿100字
2014/01/11 职场文书
暑期研修感言
2014/02/17 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
五一劳动节慰问信
2015/02/14 职场文书
追悼词范文大全
2015/06/23 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书