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 启动报错如何解决
Jan 17 PHP
CI框架给视图添加动态数据
Dec 01 PHP
使用PHP编写发红包程序
Jul 22 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
yii数据库的查询方法
Dec 28 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 PHP
Yii视图CGridView实现操作按钮定义地址示例
Jul 14 PHP
PHP简单计算两个时间差的方法示例
Jun 20 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 PHP
Laravel中GraphQL接口请求频率实战记录
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
全国FM电台频率大全 - 28 甘肃省
2020/03/11 无线电
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
python判断设备是否联网的方法
2018/06/29 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
python关于倒排列的知识点总结
2020/10/13 Python
java关于string最常出现的面试题整理
2021/01/18 Python
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
绘画设计学生的个人自我评价
2013/09/20 职场文书
函授本科自我鉴定
2013/11/03 职场文书
党课学习思想汇报
2014/01/02 职场文书
新护士岗前培训制度
2014/02/02 职场文书
红头文件任命书范本
2014/06/05 职场文书
完整版商业计划书
2014/09/15 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
2019各种保证书范文
2019/06/24 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
pyqt5打包成exe可执行文件的方法
2021/05/14 Python