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 相关文章推荐
ASP和PHP都是可以删除自身的
Apr 09 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
php 获取可变函数参数的函数
Aug 26 PHP
PHP header函数分析详解
Aug 06 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
PHP之短标签开启设置
Jun 17 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
php解析json数据实例
Aug 19 PHP
CodeIgniter配置之routes.php用法实例分析
Jan 19 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
laravel 中某一字段自增、自减的例子
Oct 11 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 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
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
javascript 写类方式之二
2009/07/05 Javascript
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
JS判定是否原生方法
2013/07/22 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
Webpack devServer中的 proxy 实现跨域的解决
2018/06/15 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
python实现多线程采集的2个代码例子
2014/07/07 Python
Python实现简单状态框架的方法
2015/03/19 Python
深入Python解释器理解Python中的字节码
2015/04/01 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
python 获取等间隔的数组实例
2019/07/04 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
使用CSS3中的calc()属性来以算式表达尺寸数值
2016/06/06 HTML / CSS
曼城官方网上商店:Manchester City
2019/09/10 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
大气污染防治方案
2014/05/19 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
写作技巧:怎样写好一份优秀工作总结?
2019/08/14 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python