使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2015-01-24信息快讯网
一般用户上传头像时,都会让用户自行裁剪图片。那么php怎么实现这个功能呢?php中裁剪图片主要使用gd库的imagecopyresampled方法
裁剪示例:
最终裁剪成的图片:
其中虚线框内就是要裁剪出来的图片,最终保存成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网页游戏学习之Xnova(ogame)源码解读(四)
PHP网页游戏学习之Xnova(ogame)源码解读(三)
PHP网页游戏学习之Xnova(ogame)源码解读(二)
PHP网页游戏学习之Xnova(ogame)源码解读(一)
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
解密ThinkPHP3.1.2版本之独立分组功能应用
php获取网页中图片、DIV内容的简单方法
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
PHP采集类Snoopy抓取图片实例
php+ajax实现图片文件上传功能实例
Yii结合CKEditor实现图片上传功能
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
Codeigniter实现智能裁剪图片的方法
PHP图片裁剪函数(保持图像不变形)
php使用imagick模块实现图片缩放、裁剪、压缩示例
PHP加Nginx实现动态裁剪图片方案
php文字水印和php图片水印实现代码(二种加水印方法)
php生成缩略图填充白边(等比缩略图方案)
php使用filter过滤器验证邮箱 ipv6地址 url验证
php使用strtotime和date函数判断日期是否有效代码分享
php制作unicode解码工具(unicode编码转换器)代码分享
linux实现php定时执行cron任务详解
php实现图片缩放功能类
php读取csv实现csv文件下载功能
PHP 提取图片img标记中的任意属性的简单实例
php调整gif动画图片尺寸示例代码分享
wordpress自定义url参数实现路由功能的代码示例
php编写的简单页面跳转功能实现代码
限制ckeditor上传图片文件大小的方法
php ckeditor上传图片文件名乱码解决方法
php header功能的使用
php+js实现图片的上传、裁剪、预览、提交示例