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 相关文章推荐
在线增减.htpasswd内的用户
Oct 09 PHP
Smarty安装配置方法
Apr 10 PHP
php 时间计算问题小结
Jan 04 PHP
php设计模式 Builder(建造者模式)
Jun 26 PHP
php mysql 判断update之后是否更新了的方法
Jan 10 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
php使用PDO方法详解
Dec 27 PHP
PHP网站自动化配置的实现方法(必看)
May 27 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
php实现websocket实时消息推送
Mar 30 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 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语法(5)
2006/10/09 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
jQuery实现简单QQ聊天框
2020/08/27 jQuery
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
Python打印输出数组中全部元素
2018/03/13 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
python序列化与数据持久化实例详解
2019/12/20 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
python如何爬取网页中的文字
2020/07/28 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
小学教师自我评价
2015/03/04 职场文书
写给女朋友的保证书
2015/05/09 职场文书
给朋友的赠语
2015/06/23 职场文书
导游带团欢迎词
2015/09/30 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏