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


Posted in PHP onOctober 01, 2014

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);
  ?>

效果:

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

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实现绘制3D扇形统计图及图片缩放实例

PHP 相关文章推荐
967 个函式
Oct 09 PHP
用PHP来写记数器(详细介绍)
Oct 09 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
php开启openssl的方法
May 15 PHP
3款值得推荐的微信开发开源框架
Oct 28 PHP
[原创]php获取数组中键值最大数组项的索引值
Mar 17 PHP
php中删除、清空session的方式总结
Oct 09 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
PHP中模糊查询并关联三个select框
Jun 19 PHP
php的命名空间与自动加载实现方法
Aug 25 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
PHP中echo,print_r与var_dump区别分析
Sep 29 #PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 #PHP
You might like
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
js简单倒计时实现代码
2016/04/30 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
[01:09]DOTA2次级职业联赛 - 99战队宣传片
2014/12/01 DOTA
Python中的引用和拷贝浅析
2014/11/22 Python
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
python PyTorch预训练示例
2018/02/11 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
Python调用JavaScript代码的方法
2020/10/27 Python
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
2013英文求职信模板范文
2013/11/15 职场文书
感恩老师演讲稿600字
2014/08/28 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
论语读书笔记
2015/06/26 职场文书
2016年党建工作简报
2015/11/26 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫