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+MYSQL开发工具及资源收藏
Jan 02 PHP
php打造属于自己的MVC框架
Mar 07 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
Jun 27 PHP
分享一个php 的异常处理程序
Jun 22 PHP
php中Y2K38的漏洞解决方法实例分析
Sep 22 PHP
PHP通过插入mysql数据来实现多机互锁实例
Nov 05 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
PHP设置头信息及取得返回头信息的方法
Jan 25 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
浅析PHP7的多进程及实例源码
Apr 14 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
PDO实现学生管理系统
Mar 21 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.MVC的模板标签系统(一)
2006/09/05 PHP
mysql 搜索之简单应用
2007/04/27 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
javascript中this关键字详解
2016/12/12 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
JSONP跨域请求
2017/03/02 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
Node.js简单入门前传
2017/08/21 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
2018/07/13 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
js中let能否完全替代IIFE
2019/06/15 Javascript
python实现web方式logview的方法
2015/08/10 Python
python3实现多线程聊天室
2018/12/12 Python
Python字符串的一些操作方法总结
2019/06/10 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
关于对大人不礼貌的检讨书
2014/09/29 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
2015年路政工作总结
2015/05/22 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
公司借款担保书
2015/09/22 职场文书
python之基数排序的实现
2021/07/26 Python
mysql中关键词exists的用法实例详解
2022/06/10 MySQL