使用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 相关文章推荐
在字符串中把网址改成超级链接
Oct 09 PHP
加速XP搜索功能堪比vista
Mar 22 PHP
色色整理的PHP面试题集锦
Mar 08 PHP
php strrpos()与strripos()函数
Aug 31 PHP
php实现监听事件
Nov 06 PHP
PHP读取txt文本文件并分页显示的方法
Mar 11 PHP
php判断linux下程序问题实例
Jul 09 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
Yii2结合Workerman的websocket示例详解
Sep 10 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 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实现异步操作的研究
2013/02/03 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
jquery图片切换插件
2015/03/16 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
[49:20]2014 DOTA2国际邀请赛中国区预选赛5.21 CIS VS TongFu
2014/05/22 DOTA
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
Python Series从0开始索引的方法
2018/11/06 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
Python常用断言函数实例汇总
2020/11/30 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
canvas实现滑动验证的实现示例
2020/08/11 HTML / CSS
企业内控岗位的职责
2014/02/07 职场文书
高中军训感想800字
2014/02/23 职场文书
《菜园里》教学反思
2014/04/17 职场文书
幼师中班个人总结
2015/02/12 职场文书
幼师自荐信范文
2015/03/06 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
病房管理制度范本
2015/08/06 职场文书
Python实现视频中添加音频工具详解
2021/12/06 Python