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执行sql语句的写法
Mar 10 PHP
php采集时被封ip的解决方法
Aug 29 PHP
PHP array_multisort()函数的使用札记
Jul 03 PHP
PHP中改变图片的尺寸大小的代码
Jul 17 PHP
PHP中extract()函数的妙用分析
Jul 11 PHP
php文件下载处理方法分析
Apr 22 PHP
php目录拷贝实现方法
Jul 10 PHP
php插入含有特殊符号数据的处理方法
Nov 24 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
Nov 30 PHP
Laravel框架源码解析之入口文件原理分析
May 14 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中array_multisort对多维数组排序的方法
2020/06/21 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
Python堆排序原理与实现方法详解
2018/05/11 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
信号生成及DFT的python实现方式
2020/02/25 Python
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
应届生妇产科护士求职信
2013/10/27 职场文书
大四本科生的自我评价
2013/12/30 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
红色革命电影观后感
2015/06/18 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
python实现剪贴板的操作
2021/07/01 Python
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android