zoukankan      html  css  js  c++  java
  • PHP图像操作:3D图、缩放、旋转、裁剪、添加水印(三)

    来源: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>

    效果


  • 相关阅读:
    行行网电子书多线程爬取
    51CTO学院IT技术课程抓取
    chromeF12 谷歌开发者工具详解 Network篇
    pyspider无法启动webui
    Python告诉你今天最冷的地方在哪里
    matplotlib画图中文及负号显示问题
    数据分析案例
    seaborn.barplot用法
    Python大数据分析之数据分析
    python中yield的用法详解
  • 原文地址:https://www.cnblogs.com/ido321/p/4004672.html
Copyright © 2011-2022 走看看