来源:http://www.ido321.com/887.html

5、PHP对图像的旋转

   1: <div>
   2:     <h4>旋转之前</h4>
   3:     <img src="1.png" style="border:1px solid red;">
   4: </div>
   5: <?

php
   6: header("content-type","text/html;charset=utf-8");
   7:  
   8: /*
   9: *图片沿y轴旋转,以png格式为例
  10: *@param string $filename 图片的url
  11: */
  12: function turn_y($filename)
  13: {
  14:     /*创建图片资源*/
  15:     $backy = imagecreatefrompng($filename);
  16:  
  17:     /*获取大小*/
  18:     $widthy = imagesx($backy);
  19:     $heighty = imagesy($backy);
  20:  
  21:     /*创建新的图片资源,保存翻转后的图片*/
  22:     $newy = imagecreatetruecolor($widthy, $heighty);
  23:  
  24:     /*沿着y轴翻转。就是将原图从右向左按一个像素宽度向新资源中逐个复制*/
  25:     for ($i=0; $i < $widthy; $i++) { 
  26:         imagecopy($newy,$backy,$widthy-$i-1,0,$i,0,1,$heighty);
  27:     }
  28:  
  29:     /*保存翻转后的图片*/
  30:     imagepng($newy,'test3.png');
  31:  
  32:     /*释放资源*/
  33:     imagedestroy($backy);
  34:     imagedestroy($newy);
  35: }
  36:  
  37: /*
  38: *图片沿x轴旋转,以png格式为例
  39: *@param string $filename 图片的url
  40: */
  41: function turn_x($filename)
  42: {
  43:     /*创建图片资源*/
  44:     $backx = imagecreatefrompng($filename);
  45:  
  46:     /*获取大小*/
  47:     $widthx = imagesx($backx);
  48:     $heightx = imagesy($backx);
  49:  
  50:     /*创建新的图片资源,保存翻转后的图片*/
  51:     $newx = imagecreatetruecolor($widthx, $heightx);
  52:  
  53:     /*沿着x轴翻转,就是将原图从上到下按一个像素宽度向新资源中逐个复制*/
  54:     for ($i=0; $i < $heightx; $i++) { 
  55:         imagecopy($newx,$backx,0,$heightx-$i-1,0,$i,$widthx,1);
  56:     }
  57:  
  58:     /*保存翻转后的图片*/
  59:     imagepng($newx,'test4.png');
  60:  
  61:     /*释放资源*/
  62:     imagedestroy($backx);
  63:     imagedestroy($newx);
  64: }
  65: /*调用函数*/
  66: turn_y('1.png');
  67: turn_x('1.png');
  68: ?

>
  69: <div style="float:left">
  70:     <h4>沿着y轴旋转</h4>
  71:     <img src="test3.png" style="border:1px solid red;">
  72: </div>
  73: <div style="float:left">
  74:     <h4>沿着x轴旋转</h4>
  75:     <img src="test4.png" style="border:1px solid red;">
  76: </div>

效果

PHP图像处理:3D图纸、缩放、回转、剪下、水印(三)的更多相关文章

  1. Wonder第一期3D引擎和编辑器线下培训班报名开始啦(免费学习)

    Wonder第一次举办 针对3D底层技术的 线下培训班,免费学习,请大家多多支持-感谢- 培训地点 成都 开课时间 报名满5人开课. 报名方式 加QQ群:732861508 备注请写:报名培训 老师介 ...

  2. javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...

  3. PHP的图片处理类(缩放、加图片水印和剪裁)

    <!--test.php文件内容--> <?php //包含这个类image.class.php include "image.class.php"; $img ...

  4. Qt在Windows下的三种编程环境搭建

    尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器 ...

  5. Qt4.8在Windows下的三种编程环境搭建

    Qt4.8在Windows下的三种编程环境搭建 Qt的版本是按照不同的图形系统来划分的,目前分为四个版本:Win32版,适用于Windows平台:X11版,适合于使用了X系统的各种Linux和Unix ...

  6. javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...

  7. Linux 下的三种时间介绍

    Linux 下的三种时间介绍: Access Time:简写为atime,表示文件访问的时间,当文件内容被访问时,更新atime时间 Modify Time:简写为mtime,表示文件内容修改的时间, ...

  8. Window下PHP三种运行方式图文详解,window下的php是不是单进程的?

    Window下PHP三种运行方式图文详解,window下的php是不是单进程的? PHP运行目前为止主要有三种方式: a.以模块加载的方式运行,初学者可能不容易理解,其实就是将PHP集成到Apache ...

  9. Qt在Windows下的三种编程环境搭建(图文并茂,非常清楚)good

    尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器 ...

  10. vim(vi)下的三种模式及其相关命令

    vim(vi)下的三种模式1.命令行模式 2.末行模式 3.插入模式 三种模式的联系及其相互转换 在我们输入vi命令进入编写程序的页面后,我们看到的是命令行模式,在我们输入“a”.“i”.“o”.“O ...

随机推荐

  1. Delphi的指针 good

    Pointers are like jumps, leading wildly from one part of the data structure to another. Their introd ...

  2. 研读asp.net排课功能实现学习笔记

    1.datatable.select 方法,返回的是一个datarow数组 DataRow[] drs =                    dtHBKC.Select("Subject ...

  3. PAT 1055

    题目链接:https://www.patest.cn/contests/pat-b-practise/1055 分析:思路很巧妙,感觉很有意义的字符串题目 #include<bits/stdc+ ...

  4. 用Python对体积较大的CSV文件进行比较的经验

    用Python对体积较大的CSV文件进行比较的经验 » 进化的测试 | 进化的测试 用Python对体积较大的CSV文件进行比较的经验  python  Add comments 八 032010   ...

  5. Java Swing界面编程(28)---复选框:JCheckBox

    程序能够通过JRadioButton实现单选button的功能,那么要实现复选框的功能,则必须使用JCheckBox完毕. package com.beyole.util; import java.a ...

  6. Android照片墙完整版,的完美结合LruCache和DiskLruCache

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/34093441 在上一篇文章其中,我们学习了DiskLruCache的概念和基本使用 ...

  7. ZooKeeper的安装、配置、启动和使用(一)——单机模式

    ZooKeeper的安装.配置.启动和使用(一)——单机模式 ZooKeeper的安装非常简单,它的工作模式分为单机模式.集群模式和伪集群模式,本博客旨在总结ZooKeeper单机模式下如何安装.配置 ...

  8. OCA读书笔记(15) - 执行数据库备份

    物理备份 -- 数据文件,控制文件,日志文件,参数文件 数据库备份 冷备 -- 归档和非归档均可以 什么时候必须用冷备?1. 数据库的模式为非归档的2. 用于现场保护 冷备的过程:1. 首先查看备份文 ...

  9. [Android面试题-7] 写出一个Java的Singleton类(即单例类)

    1.首先明确单例的概念和特点: a>单例类只能有一个实例 b>单例类必须自己创建一个自己的唯一实例 c>单例类必须为其他所有对象提供这个实例 2.单例具有几种模式,最简单的两种分别是 ...

  10. currentstyle和getComputedStyle兼容问题

    currentStyle:获取计算后的样式,也叫当前样式.终于样式. 长处:能够获取元素的终于样式,包含浏览器的默认值,而不像style仅仅能获取行间样式,所以更经常使用到. 注意:不能获取复合样式如 ...