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 相关文章推荐
PHP学习之PHP运算符
Oct 09 PHP
PHP的autoload自动加载机制使用说明
Dec 28 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
php Session存储到Redis的方法
Nov 04 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
php微信开发接入
Aug 27 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
PHP微信分享开发详解
Jan 14 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 PHP
laravel 5.3 单用户登录简单实现方法
Oct 14 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 正则学习实例
2008/07/30 PHP
PHP关联链接常用代码
2012/11/05 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
React组件生命周期详解
2017/07/03 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
[00:39]DOTA2上海特级锦标赛 Liquid战队宣传片
2016/03/04 DOTA
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
安装PyInstaller失败问题解决
2019/12/14 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
python让函数不返回结果的方法
2020/06/22 Python
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
高一自我鉴定
2013/12/17 职场文书
个人工作表现评语
2014/04/30 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python