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 相关文章推荐
第十四节--命名空间
Nov 16 PHP
PHP 第二节 数据类型之数值型
Apr 28 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
Jun 19 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
PHP实现图片旋转效果实例代码
Oct 01 PHP
Linux操作系统安装LAMP环境
Jun 26 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
Jul 10 PHP
网页的分页下标生成代码(PHP后端方法)
Feb 03 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
php的api数据接口书写实例(推荐)
Sep 22 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
详解Python中的strftime()方法的使用
2015/05/22 Python
python常用函数详解
2016/09/13 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
Django 视图层(view)的使用
2018/11/09 Python
详解Python的循环结构知识点
2019/05/20 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
python删除某个目录文件夹的方法
2020/05/26 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
中专毕业生自我鉴定
2014/02/02 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
python实现股票历史数据可视化分析案例
2021/06/10 Python