PHP实现绘制3D扇形统计图及图片缩放实例

 更新时间:2014年10月01日 15:09:55   转载 投稿:junjie  
这篇文章主要介绍了PHP实现绘制3D扇形统计图及图片缩放实例,本文给出代码示例,代码中包含一些说明注释,需要的朋友可以参考下

1、利用php gd库的函数绘制3D扇形统计图

  <?php
  header("content-type","text/html;charset=utf-8");
  /*扇形统计图*/
  $image = imagecreatetruecolor(100, 100);  /*创建画布*/
  
  /*设置画布需要的颜色*/
  $white = imagecolorallocate($image,0xff,0xff,0xff);
  $gray = imagecolorallocate($image, 0xc0, 0xc0, 0xc0);
  $darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
  $navy = imagecolorallocate($image, 0x00, 0x00, 0x80);
  $darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
  $red = imagecolorallocate($image, 0xff, 0x00, 0x00);
  $darkred = imagecolorallocate($image, 0x90, 0x00, 0x00);
 
  /*填充背景色*/
  imagefill($image, 0, 0, $white);
 
  /*3D制作*/
  for($i = 60; $i > 50; $i--)
  {
    imagefilledarc($image, 50, $i, 100, 50, -160, 40, $darknavy, IMG_ARC_PIE);
    imagefilledarc($image, 50, $i, 100, 50, 40, 75, $darkgray, IMG_ARC_PIE);
    imagefilledarc($image, 50, $i, 100, 50, 75, 200, $darkred, IMG_ARC_PIE);
  }
  /*画椭圆弧并填充*/
  imagefilledarc($image, 50, 50, 100, 50, -160, 40, $darknavy, IMG_ARC_PIE);
  imagefilledarc($image, 50, 50, 100, 50, 40, 75, $darkgray, IMG_ARC_PIE);
  imagefilledarc($image, 50, 50, 100, 50, 75, 200, $darkred, IMG_ARC_PIE);
 
  /*画字符串*/
  imagestring($image, 3, 15, 55, "30%", $white);
  imagestring($image, 3, 45, 35, "60%", $white);
  imagestring($image, 3, 60, 60, "10%", $white);
 
  /*输出图像*/
  header("content-type:image/png");
  imagepng($image);
 
  /*释放资源*/
  imagedestroy($image);
  ?>

效果:

2、对图片进行缩放

  <div>
    <h4>原图大小</h4>
    <img src="1.png" style="border:1px solid red;">
  </div>
  <?php
  header("content-type","text/html;charset=utf-8");
  
  /*
  *图片缩放
  *@param string $filename  图片的url
  *@param int  $width   设置图片缩放的最大宽度
  *@param int  $height   设置图片缩放的最大高度
  */
  function thumb($filename,$width=130,$height=130)
  {
    /*获取原图的大小*/
    list($width_orig,$height_orig) = getimagesize($filename);
 
    /*根据参数$width和$height,换算出等比例的高度和宽度*/
    if($width && ($width_orig < $height_orig))
    {
      $width = ($height / $height_orig) * $width_orig;
    }
    else
    {
      $height = ($width / $width_orig) * $height_orig;
    }
 
    /*以新的大小创建画布*/
    $image_p = imagecreatetruecolor($width, $height);
 
    /*获取图像资源*/
    $image = imagecreatefrompng($filename);
 
    /*使用imagecopyresampled缩放*/
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
 
    /*保存缩放后的图片和命名*/
    imagepng($image_p,'test.png');
 
    /*释放资源*/
    imagedestroy($image_p);
    imagedestroy($image);
  }
  /*调用函数*/
  thumb('1.png');
  ?>
  <div>
    <h4>缩放后的大小</h4>
    <img src="test.png" style="border:1px solid red;">
  </div>

效果:

相关文章

  • php session_decode函数用法讲解

    php session_decode函数用法讲解

    在本篇文章里小编给大家整理了关于php session_decode函数怎么用的相关知识点以及实例内容,需要的朋友们学习下。
    2019-05-05
  • 微信开发之网页授权获取用户信息(二)

    微信开发之网页授权获取用户信息(二)

    本文给大家阐述的微信开发基于yii2.0框架,对微信开发之网页授权获取用户信息相关知识感兴趣的朋友通过本文学习吧
    2016-01-01
  • tp5.1 框架路由操作-URL生成实例分析

    tp5.1 框架路由操作-URL生成实例分析

    这篇文章主要介绍了tp5.1 框架路由操作-URL生成,结合实例形式分析了tp5.1 框架针对路由操作URL生成的相关实现原理、操作技巧与注意事项,需要的朋友可以参考下
    2020-05-05
  • laravel清除视图缓存的代码

    laravel清除视图缓存的代码

    今天小编就为大家分享一篇laravel清除视图缓存的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP函数getenv简介和使用实例

    PHP函数getenv简介和使用实例

    这篇文章主要介绍了PHP函数getenv简介和使用实例,getenv函数主要用来获取一个环境变量的值,常见的PHP探针程序都是使用的getenv函数,需要的朋友可以参考下
    2014-05-05
  • PHP二进制与字符串之间的相互转换教程

    PHP二进制与字符串之间的相互转换教程

    欢迎大家在这里学习PHP二进制与字符串之间的相互转换!问题也肯定是很多朋友在关心的,想要了解的朋友可以看一下。
    2016-10-10
  • Laravel实现构造函数自动依赖注入的方法

    Laravel实现构造函数自动依赖注入的方法

    这篇文章主要介绍了Laravel实现构造函数自动依赖注入的方法,涉及Laravel构造函数自动初始化的相关技巧,需要的朋友可以参考下
    2016-03-03
  • PHP抓取网页、解析HTML常用的方法总结

    PHP抓取网页、解析HTML常用的方法总结

    这篇文章主要介绍了PHP抓取网页、解析HTML常用的方法总结,本文只是对可以实现这两个需求的方法作了总结,只介绍方法,不介绍如何实现,需要的朋友可以参考下
    2015-07-07
  • php发送邮件的问题详解

    php发送邮件的问题详解

    这篇文章主要介绍了php发送邮件的问题详解的相关资料,需要的朋友可以参考下
    2015-06-06
  • PHP SplObjectStorage使用实例

    PHP SplObjectStorage使用实例

    这篇文章主要介绍了PHP SplObjectStorage使用实例,SplObjectStorage是SPL标准库中的数据结构对象容器,用来存储一组对象,特别是当你需要唯一标识对象的时候,需要的朋友可以参考下
    2015-05-05

最新评论