使用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面试题附答案
Jan 07 PHP
php生成SessionID和图片校验码的思路和实现代码
Mar 10 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
解析php中static,const与define的使用区别
Jun 18 PHP
php中Ctype函数用法详解
Dec 09 PHP
php获取linux命令结果的实例
Mar 13 PHP
PHP获取数组中指定的一列实例
Dec 27 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
thinkphp5实现无限级分类
Feb 18 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
Jun 14 PHP
Yii 使用intervention/image拓展实现图像处理功能
Jun 22 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
Aug 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发送html格式文本邮件的方法
2015/06/10 PHP
ThinkPHP安装和设置
2015/07/27 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
PHP文件操作实例总结
2016/09/27 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
一段实时更新的时间代码
2006/07/07 Javascript
菜单效果
2006/10/14 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
jQuery 技巧小结
2010/04/02 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
Python格式化字符串f-string概览(小结)
2019/06/18 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
2016新党章学习心得体会
2016/01/15 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python