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中处理模拟rewrite 效果
Dec 09 PHP
解决ajax+php中文乱码的方法详解
Jun 09 PHP
php中并发读写文件冲突的解决方案
Oct 25 PHP
网页上facebook分享功能具体实现
Jan 26 PHP
PHP内核探索:变量概述
Jan 30 PHP
PHP采用XML-RPC构造Web Service实例教程
Jul 16 PHP
ThinkPHP中limit()使用方法详解
Apr 19 PHP
Laravel与CI框架中截取字符串函数
May 08 PHP
php学习笔记之mb_strstr的基本使用
Feb 03 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
Referer原理与图片防盗链实现方法详解
Jul 03 PHP
php 的多进程操作实践案例分析
Feb 28 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多层数组与对象的转换实例代码
2013/08/05 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
javaScript中"=="和"==="的区别详解
2018/03/16 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
Python Web服务器Tornado使用小结
2014/05/06 Python
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
python3爬取数据至mysql的方法
2018/06/26 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
pandas针对excel处理的实现
2021/01/15 Python
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
活动邀请函范文
2014/01/19 职场文书
时尚休闲吧创业计划书
2014/01/25 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS