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 相关文章推荐
用PHP实现将GB编码转换为UTF8
Nov 25 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
php中adodbzip类实例
Dec 08 PHP
php绘制圆形的方法
Jan 24 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
Mar 05 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
Jan 08 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
May 27 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
学习PHP Cookie处理函数
Aug 09 PHP
PHP生成图片缩略图类示例
Jan 12 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 PHP
PHP数组Key强制类型转换实现原理解析
Sep 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
PHP中echo,print_r与var_dump区别分析
Sep 29 #PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 #PHP
You might like
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
js 目录列举函数
2008/11/06 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
让 python 命令行也可以自动补全
2014/11/30 Python
Python实现测试磁盘性能的方法
2015/03/12 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
简单实现python收发邮件功能
2018/01/05 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
python 自定义对象的打印方法
2019/01/12 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
仓管员岗位职责范文
2013/11/08 职场文书
教师的实习自我鉴定
2013/12/17 职场文书
企业管理部经理岗位职责
2013/12/24 职场文书
单身联谊活动方案
2014/01/29 职场文书
三年级学生评语
2014/04/23 职场文书
安全责任书范文
2014/08/25 职场文书
小学班级特色活动方案
2014/08/31 职场文书
入党函调证明材料
2015/06/19 职场文书