使用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语法(1)
Oct 09 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
Dec 06 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
php操作redis缓存方法分享
Jun 03 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
PHP magento后台无法登录问题解决方法
Nov 24 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 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
pdo中使用参数化查询sql
2011/08/11 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
JS实现Enter键跳转及控件获得焦点
2013/08/12 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
详解vue-router 路由元信息
2017/09/13 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
美国玩具公司:U.S.Toy
2018/05/19 全球购物
全球性的女装店:storets
2019/06/12 全球购物
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
中学生校园广播稿
2014/01/16 职场文书
三年级音乐教学反思
2014/01/28 职场文书
原料仓管员岗位职责
2015/04/01 职场文书