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 相关文章推荐
人尽可用的Windows技巧小贴士之下篇
Mar 22 PHP
php中cookie的作用域
Mar 27 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
php 生成饼图 三维饼图
Sep 28 PHP
深入理解PHP之require/include顺序 推荐
Jan 02 PHP
php利用iframe实现无刷新文件上传功能的代码
Sep 29 PHP
php格式化日期和时间格式化示例分享
Feb 24 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
php外部执行命令函数用法小结
Oct 11 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
PHP常见字符串操作函数与用法总结
Mar 04 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
Sep 16 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
JS实现小米轮播图
2020/09/21 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
Python数组定义方法
2016/04/13 Python
简单讲解Python编程中namedtuple类的用法
2016/06/21 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
python数字类型math库原理解析
2020/03/02 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
六查六看六改心得体会
2014/10/14 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
逃课检讨书范文
2015/05/06 职场文书
党员读书活动心得体会
2016/01/14 职场文书
Python实战之用tkinter库做一个鼠标模拟点击器
2021/04/27 Python