使用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
Dec 14 PHP
献给php初学者(入门学习经验谈)
Oct 12 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
Oct 08 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
PHP聊天室简单实现方法详解
Dec 08 PHP
简单实用的PHP文本缓存类实例
Mar 22 PHP
laravel withCount 统计关联数量的方法
Oct 10 PHP
php使用event扩展的io复用测试的示例
Oct 20 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中使用curl_init函数的说明
2010/11/02 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
图片完美缩放
2006/09/07 Javascript
MooTools 1.2介绍
2009/09/14 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
对Angular中单向数据流的深入理解
2018/03/31 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
Python之re操作方法(详解)
2017/06/14 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
Python实现的建造者模式示例
2018/08/06 Python
Python猜数字算法题详解
2020/03/01 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
工厂会计员职责
2014/02/06 职场文书
师德师风承诺书
2014/05/23 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers