使用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自动注册登录验证机制实现代码
Dec 20 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
php中session与cookie的比较
Jan 27 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
php输出含有“#”字符串的方法
Jan 18 PHP
php UNIX时间戳用法详解
Feb 16 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
Sep 28 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 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
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
Python模拟登录和登录跳转的参考示例
2020/10/30 Python
智能旅行箱:Horizn Studios
2018/04/30 全球购物
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
交通事故私了协议书
2014/04/16 职场文书
承诺书格式
2014/06/03 职场文书
捐款活动总结
2014/08/27 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
高一作文之暖冬
2019/11/09 职场文书
总结Pyinstaller打包的高级用法
2021/06/28 Python