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 相关文章推荐
windows xp下安装pear
Dec 02 PHP
php完全过滤HTML,JS,CSS等标签
Jan 16 PHP
php编写一个简单的路由类
Apr 13 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
PHP迭代器的内部执行过程详解
Nov 12 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
Symfony2针对输入时间进行查询的方法分析
Jun 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
基于php缓存的详解
2013/05/15 PHP
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
javascript Demo模态窗口
2009/12/06 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
javascript截取字符串小结
2015/04/28 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
vue中监听返回键问题
2019/08/28 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
github配置使用指南
2014/11/18 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
2019/05/10 Python
Python 私有化操作实例分析
2019/11/21 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
公司清洁工岗位职责
2013/12/14 职场文书
高一政治教学反思
2014/01/28 职场文书
开学典礼策划方案
2014/05/28 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
老人与海读书笔记
2015/06/26 职场文书
聘任通知书
2015/09/21 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
Django程序的优化技巧
2021/04/29 Python