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 相关文章推荐
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
ajax+php打造进度条 readyState各状态
Mar 20 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
解析thinkphp的左右值无限分类
Jun 20 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
详解PHP数据压缩、加解密(pack, unpack)
Dec 17 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
PHP反射基础知识回顾
Sep 10 PHP
php命令行模式代码实例详解
Feb 26 PHP
如何解决php-fpm启动不了问题
Nov 17 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 如何获取数组第一个值
2013/08/06 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
thinkPHP中_initialize方法实例分析
2016/12/05 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
微信小程序url与token设置详解
2017/09/26 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
2019/08/11 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
Python如何快速实现分布式任务
2017/07/06 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
高级运动鞋:GREATS
2019/07/19 全球购物
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
高中自我鉴定
2013/12/20 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
卖房授权委托书样本
2014/10/05 职场文书
师德培训心得体会2016
2016/01/09 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
Nginx下SSL证书安装部署步骤介绍
2021/12/06 Servers