使用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 相关文章推荐
PHP的FTP学习(二)
Oct 09 PHP
PHP扩展编写点滴 技巧收集
Mar 09 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
php创建无限级树型菜单
Nov 05 PHP
PHP框架性能测试报告
May 08 PHP
Zend Framework数据库操作方法实例总结
Dec 11 PHP
php使用PDO执行SQL语句的方法分析
Feb 16 PHP
thinkphp整合系列之极验滑动验证码geetest功能
Jun 18 PHP
Laravel5.1框架注册中间件的三种场景详解
Jul 09 PHP
PHP遍历数组的6种方式总结
Nov 17 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
PHP4(windows版本)中的COM函数
2006/10/09 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
PHP导入导出Excel代码
2015/07/07 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
jquery中添加属性和删除属性
2015/06/03 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
用webAPI实现图片放大镜效果
2020/11/23 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
初步认识Python中的列表与位运算符
2015/10/12 Python
利用python画一颗心的方法示例
2017/01/31 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
Python列表list操作相关知识小结
2020/01/29 Python
大学生求职推荐信
2013/11/27 职场文书
护士毕业生自我鉴定
2014/02/08 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
学习心得体会
2019/06/20 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python