使用gd库实现php服务端图片裁剪和生成缩略图功能分享


Posted in PHP onDecember 25, 2013

裁剪示例:

使用gd库实现php服务端图片裁剪和生成缩略图功能分享

最终裁剪成的图片:

使用gd库实现php服务端图片裁剪和生成缩略图功能分享

其中虚线框内就是要裁剪出来的图片,最终保存成100宽的图片。代码如下:

$src_path = '1.jpg';
//创建源图的实例
$src = imagecreatefromstring(file_get_contents($src_path));
//裁剪开区域左上角的点的坐标
$x = 100;
$y = 12;
//裁剪区域的宽和高
$width = 200;
$height = 200;
//最终保存成图片的宽和高,和源要等比例,否则会变形
$final_width = 100;
$final_height = round($final_width * $height / $width);
//将裁剪区域复制到新图片上,并根据源和目标的宽高进行缩放或者拉升
$new_image = imagecreatetruecolor($final_width, $final_height);
imagecopyresampled($new_image, $src, 0, 0, $x, $y, $final_width, $final_height, $width, $height);
//输出图片
header('Content-Type: image/jpeg');
imagejpeg($new_image);
imagedestroy($src);
imagedestroy($new_image);

其实如果坐标为(0,0),裁剪区域的宽高和源图的宽高一致,那么就是生成缩略图的功能了。

总结

这里只列出了php裁剪图片的示例,属于服务端的功能。如果客户端有需要,推荐一个jquery的插件imageAreaSelect,兼容性非常不错。

PHP 相关文章推荐
smarty的保留变量问题
Oct 23 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
php无限遍历文件夹示例分享
Mar 04 PHP
php将12小时制转换成24小时制的方法
Mar 31 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
Zend Framework教程之Resource Autoloading用法实例
Mar 08 PHP
php代码检查代理ip的有效性
Aug 19 PHP
PHP实现Unicode编码相互转换的方法示例
Nov 17 PHP
IOS 开发之NSDictionary转换成JSON字符串
Aug 14 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
TP3.2框架分页相关实现方法分析
Jun 03 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 #PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 #PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 #PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 #PHP
linux实现php定时执行cron任务详解
Dec 24 #PHP
生成随机字符串和验证码的类的PHP实例
Dec 24 #PHP
php下载excel无法打开的解决方法
Dec 24 #PHP
You might like
PHP开发大型项目的一点经验
2006/10/09 PHP
PHPShop存在多个安全漏洞
2006/10/09 PHP
php记录日志的实现代码
2011/08/08 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
js图片自动切换效果处理代码
2013/05/07 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
django 按时间范围查询数据库实例代码
2018/02/11 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
便捷提取python导入包的属性方法
2018/10/15 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
详解python中__name__的意义以及作用
2019/08/07 Python
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
中专毕业生自我鉴定范文
2013/11/09 职场文书
《商鞅南门立木》教学反思
2014/02/16 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
出国留学英文自荐信
2015/03/25 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技