PHP实现图片旋转效果实例代码


Posted in PHP onOctober 01, 2014

PHP对图像的旋转

<div>
    <h4>旋转之前</h4>
    <img src="1.png" style="border:1px solid red;">
  </div>
  <?php
  header("content-type","text/html;charset=utf-8");
   
  /*
  *图片沿y轴旋转,以png格式为例
  *@param string $filename 图片的url
  */
  function turn_y($filename)
  {
    /*创建图片资源*/
    $backy = imagecreatefrompng($filename);
  
    /*获取大小*/
    $widthy = imagesx($backy);
    $heighty = imagesy($backy);
  
    /*创建新的图片资源,保存翻转后的图片*/
    $newy = imagecreatetruecolor($widthy, $heighty);
  
    /*沿着y轴翻转,就是将原图从右向左按一个像素宽度向新资源中逐个复制*/
    for ($i=0; $i < $widthy; $i++) { 
      imagecopy($newy,$backy,$widthy-$i-1,0,$i,0,1,$heighty);
    }
  
    /*保存翻转后的图片*/
    imagepng($newy,'test3.png');
  
    /*释放资源*/
    imagedestroy($backy);
    imagedestroy($newy);
  }
  
  /*
  *图片沿x轴旋转,以png格式为例
  *@param string $filename 图片的url
  */
  function turn_x($filename)
  {
    /*创建图片资源*/
    $backx = imagecreatefrompng($filename);
  
    /*获取大小*/
    $widthx = imagesx($backx);
    $heightx = imagesy($backx);
  
    /*创建新的图片资源,保存翻转后的图片*/
    $newx = imagecreatetruecolor($widthx, $heightx);
  
    /*沿着x轴翻转,就是将原图从上到下按一个像素宽度向新资源中逐个复制*/
    for ($i=0; $i < $heightx; $i++) { 
      imagecopy($newx,$backx,0,$heightx-$i-1,0,$i,$widthx,1);
    }
  
    /*保存翻转后的图片*/
    imagepng($newx,'test4.png');
  
    /*释放资源*/
    imagedestroy($backx);
    imagedestroy($newx);
  }
  /*调用函数*/
  turn_y('1.png');
  turn_x('1.png');
  ?>
  <div style="float:left">
    <h4>沿着y轴旋转</h4>
    <img src="test3.png" style="border:1px solid red;">
  </div>
  <div style="float:left">
    <h4>沿着x轴旋转</h4>
    <img src="test4.png" style="border:1px solid red;">
  </div>
PHP 相关文章推荐
多重?l件?合查?(一)
Oct 09 PHP
php设计模式 Observer(观察者模式)
Jun 26 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
Oct 23 PHP
php excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
Dec 15 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
PHP6新特性分析
Mar 03 PHP
PHP引用返回用法示例
May 28 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 #PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 #PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 #PHP
php中文字符串截取方法实例总结
Sep 30 #PHP
php出现web系统多域名登录失败的解决方法
Sep 30 #PHP
php中运用http调用的GET和POST方法示例
Sep 29 #PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 #PHP
You might like
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
Python比较两个图片相似度的方法
2015/03/13 Python
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
Python检测QQ在线状态的方法
2015/05/09 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
2018/11/10 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
Python 串口通信的实现
2020/09/29 Python
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
家电业务员岗位职责
2014/03/10 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
卖车协议书范例
2014/09/16 职场文书
北京故宫导游词
2015/01/31 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书