使用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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
我常用的几个类
Oct 09 PHP
PHP类中Static方法效率测试代码
Oct 17 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 PHP
在项目中寻找代码的坏命名
Jul 14 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
Dec 15 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
YII2.0之Activeform表单组件用法实例
Jan 09 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
php5.3 废弃函数小结
2010/05/16 PHP
PHP时间格式控制符对照表分享
2013/07/23 PHP
PHP反向代理类代码
2014/08/15 PHP
php计算整个目录大小的方法
2015/06/19 PHP
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
es6函数之箭头函数用法实例详解
2020/04/25 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
Python中的闭包实例详解
2014/08/29 Python
python 检查文件mime类型的方法
2018/12/08 Python
Python数据抓取爬虫代理防封IP方法
2018/12/23 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
员工晚婚的请假条
2014/02/08 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
病人写给医生的感谢信
2015/01/23 职场文书
老公保证书怎么写
2015/02/26 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
死亡诗社观后感
2015/06/05 职场文书
MySQL的索引你了解吗
2022/03/13 MySQL