php图片裁剪函数


Posted in PHP onOctober 31, 2018

本文实例为大家分享了php图片裁剪函数的具体代码,供大家参考,具体内容如下

/*
 * 图片裁剪工具
 * 将指定文件裁剪成正方形
 * 以中心为起始向四周裁剪
 * @param $src_path string 源文件地址
 * @param $des_path string 保存文件地址
 * @param $des_w double 目标图片宽度
 * */
function img_cut_square($src_path,$des_path,$des_w=100){
  $img_info = getimagesize($src_path);//获取原图像尺寸信息
  $img_width = $img_info[0];//原图宽度
  $img_height = $img_info[1];//原图高度
  $img_type = $img_info[2];//图片类型 1 为 GIF 格式、 2 为 JPEG/JPG 格式、3 为 PNG 格式
  if($img_type != 2 && $img_type != 3) return ;

  /*计算缩放尺寸*/
  if($img_height > $img_width){
    $scale_width = $des_w;//缩放宽度
    $scale_height = round($des_w / $img_width * $img_height);//缩放高度

    $src_y = round(($scale_height - $des_w)/2);
    $src_x = 0;
  }else{
    $scale_height = $des_w;
    $scale_width = round($des_w / $img_height * $img_width);

    $src_y = 0;
    $src_x = round(($scale_width - $des_w)/2);
  }

  $dst_ims = imagecreatetruecolor($scale_width, $scale_height);//创建真彩画布
  $white = imagecolorallocate($dst_ims, 255, 255, 255);
  imagefill($dst_ims, 0, 0, $white);
  if($img_type == 2){
    $src_im = @imagecreatefromjpeg($src_path);//读取原图像
  }else if($img_type == 3){
    $src_im = @imagecreatefrompng($src_path);//读取原图像
  }

  imagecopyresized($dst_ims, $src_im, 0, 0 ,0, 0 , $scale_width , $scale_height , $img_width,$img_height);//缩放图片到指定尺寸


  $dst_im = imagecreatetruecolor($des_w, $des_w);
//  $white = imagecolorallocate($dst_im, 255, 255, 255);
//  imagefill($dst_im, 0, 0, $white);
  imagecopy($dst_im, $dst_ims, 0, 0, $src_x, $src_y, $des_w, $des_w);//开始裁剪图片为正方形
// imagecopyresampled($dst_im, $src_im, $src_x, $src_y, 0, 0, $real_width, $real_width,$img_width,$img_height);
  if($img_type == 2) {
    imagejpeg($dst_im, $des_path);//保存到文件
  }else if($img_type == 3){
    imagepng($dst_im,$des_path);
  }
//  imagejpeg($dst_im);//输出到浏览器
  imagedestroy($dst_im);
  imagedestroy($dst_ims);
  imagedestroy($src_im);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
使用PHP制作新闻系统的思路
Oct 09 PHP
PHP 中的一些经验积累
Oct 09 PHP
用session做客户验证时的注意事项
Oct 09 PHP
cmd下运行php脚本
Nov 25 PHP
php 获取select下拉列表框的值
May 08 PHP
PHP中输出转义JavaScript代码的实现代码
Apr 22 PHP
PHP实现根据银行卡号判断银行
Apr 29 PHP
功能强大的php文件上传类
Aug 29 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
thinkPHP实现基于ajax的评论回复功能
Jun 22 PHP
thinkphp5框架API token身份验证功能示例
May 21 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 PHP
php+js实现裁剪任意形状图片
Oct 31 #PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 #PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 #PHP
swoole_process实现进程池的方法示例
Oct 29 #PHP
PHP大文件分片上传的实现方法
Oct 28 #PHP
PHP array_reduce()函数的应用解析
Oct 28 #PHP
php 中phar包的使用教程详解
Oct 26 #PHP
You might like
PHP nl2br函数 将换行字符转成 <br>
2009/08/21 PHP
paypal即时到账php实现代码
2010/11/28 PHP
深入PHP curl参数的详解
2013/06/17 PHP
PHP反向代理类代码
2014/08/15 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
nodejs异步编程基础之回调函数用法分析
2018/12/26 NodeJs
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
Python中__init__.py文件的作用详解
2016/09/18 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
python 读取修改pcap包的例子
2019/07/23 Python
django实现类似触发器的功能
2019/11/15 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
Python列表如何更新值
2020/05/27 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
揠苗助长教学反思
2014/02/04 职场文书
股东协议书
2014/04/14 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
初中地理教学反思
2016/02/19 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android
Python  lambda匿名函数和三元运算符
2022/04/19 Python