使用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 相关文章推荐
基于mysql的论坛(7)
Oct 09 PHP
与数据库连接
Oct 09 PHP
PHP按行读取、处理较大CSV文件的代码实例
Apr 09 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
Dec 09 PHP
thinkphp中session和cookie无效的解决方法
Dec 19 PHP
php安装swoole扩展的方法
Mar 19 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 PHP
微信支付开发发货通知实例
Jul 12 PHP
PHP设置images目录不充许http访问的方法
Nov 01 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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中动态HTML的输出技术
2006/10/09 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
js实现计算器功能
2020/08/10 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[00:39]DOTA2上海特级锦标赛 Liquid战队宣传片
2016/03/04 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
跟老齐学Python之list和str比较
2014/09/20 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python中int()函数的用法浅析
2017/10/17 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
python实现图像拼接功能
2020/03/23 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
医务人员自我评价
2014/01/26 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
有关环保的标语
2014/06/13 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书