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配置文件中最常用四个ini函数
Mar 19 PHP
php的字符串用法小结
Jun 08 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
thinkphp的URL路由规则与配置实例
Nov 26 PHP
VPS中使用LNMP安装WordPress教程
Dec 28 PHP
php生成短域名函数
Mar 23 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
php中文语义分析实现方法示例
Sep 28 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
Protoss建筑一览
2020/03/14 星际争霸
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
Mac系统下安装PHP Xdebug
2018/03/30 PHP
prototype1.4中文手册
2006/09/22 Javascript
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
如何用js控制css中的float的代码
2007/08/16 Javascript
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
2009/08/04 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
详解jQuery事件
2017/01/13 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
JavaScript位置参数实现原理及过程解析
2020/09/14 Javascript
浅析Python中yield关键词的作用与用法
2016/11/29 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
销售找工作求职信
2013/12/20 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
小学生环保倡议书
2014/05/15 职场文书
政风行风评议整改方案
2014/09/15 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
思想品德课教学反思
2016/02/24 职场文书
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫