使用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中进行身份认证
Oct 09 PHP
PHP容易忘记的知识点分享
Apr 30 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
Jun 20 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 PHP
destoon官方标签大全
Jun 20 PHP
php发送与接收流文件的方法
Feb 11 PHP
php显示指定目录下子目录的方法
Mar 20 PHP
优化WordPress的Google字体以加速国内服务器上的运行
Nov 24 PHP
php短信接口代码
May 13 PHP
ThinkPHP实现更新数据实例详解(demo)
Jun 29 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
自己动手做一个SQL解释器
2006/10/09 PHP
针对初学PHP者的疑难问答(2)
2006/10/09 PHP
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
基于jquery的loading效果实现代码
2010/11/05 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
2020/05/06 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
Python 用户登录验证的小例子
2013/03/06 Python
Python字符串替换实例分析
2015/05/11 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
电气自动化自荐信
2013/10/10 职场文书
酒店保安员岗位职责
2014/01/31 职场文书
搞笑老公保证书
2015/02/26 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书