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连mysql和oracle数据库性能比较
Oct 09 PHP
php 异常处理实现代码
Mar 10 PHP
超小PHP小马小结(方便查找后门的朋友)
May 05 PHP
php三维数组去重(示例代码)
Nov 26 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
PHP生成二维码的两个方法和实例
Jul 01 PHP
php在线解压ZIP文件的方法
Dec 30 PHP
PHP 错误处理机制
Jul 06 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
Jun 04 PHP
php实现银联商务公众号+服务窗支付的示例代码
Oct 12 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安装攻略:常见问题解答(三)
2006/10/09 PHP
php学习 字符串课件
2008/06/15 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
10条php编程小技巧
2015/07/07 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
CI框架表单验证实例详解
2016/11/21 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
PHP7 弃用功能
2021/03/09 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
python学习必备知识汇总
2017/09/08 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
英国天然保健品网站:Simply Supplements
2017/03/22 全球购物
高性能装备提升营地:Kammok
2019/02/27 全球购物
兴趣小组活动总结
2014/05/05 职场文书
整改报告格式
2014/11/06 职场文书