PHP制作3D扇形统计图以及对图片进行缩放操作实例


Posted in PHP onOctober 23, 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">
</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">
</div>

效果:

PHP制作3D扇形统计图以及对图片进行缩放操作实例

PHP 相关文章推荐
PHP 中文乱码解决办法总结分析
Jul 30 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
PHP CURL获取返回值的方法
May 04 PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 PHP
PHP常用的排序和查找算法
Aug 06 PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
Sep 26 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
对php 判断http还是https,以及获得当前url的方法详解
Jan 15 PHP
PHP制作图形验证码代码分享
Oct 23 #PHP
PHP链接MySQL的常用扩展函数
Oct 23 #PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 #PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 #PHP
20个2014年最优秀的PHP框架回顾
Oct 22 #PHP
PHP获取当前页面URL函数实例
Oct 22 #PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 #PHP
You might like
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
php正则表达式使用的详细介绍
2013/04/27 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
Javascript实现时间倒计时效果
2017/07/15 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Python入门教程之运算符与控制流
2016/08/17 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
Python中最大递归深度值的探讨
2019/03/05 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
如何通过jdbc调用存储过程
2012/04/19 面试题
关于是否需要写商业计划书
2014/02/07 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
2014年工程师工作总结
2014/11/25 职场文书
党员转正意见怎么写
2015/06/03 职场文书
新学期感想
2015/08/10 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python