php中的绘图技术要点及应用总结

绘图属于php的高级部分,而且在实际的应用开发的过程中也是比较实用,在很多地方都可以看到技术的应用,如统计资料,折线,柱状等实时更新的图等,不可能通过纯美工的方法来实现,因为数据呈现着不可确定性,在一般的开发条件下,数据的获取是来自于服务器的,然而我们要根据这些数据进行友好的表示出来,即图形化的方式,在没有学习绘图技术之前是很难实现的,难度之处在于“变化”,所以,可以利用变量的方式来改变视图成为解决问题的首选方式,下面就是列举的一些php绘图的简单创建以及柱状图的制作过程:

一般的过程:

<?php
	$img_1=imagecreatetruecolor(400,300);//创键画布
	$mycolor_1=imagecolorallocate($img_1, 255, 0, 0);//定义一个颜色(红色)
	$mycolor_2=imagecolorallocate($img_1, 232,222,13);//定义一个颜色(黄色)
	/*imageellipse($img_1, 150, 150, 50, 50, $mycolor_1);//定义绘的图的位置大小颜色(椭圆)
	imageline($img_1, 150, 0, 150, 175, $mycolor_1);//画一个直线,起始的坐标,颜色
	imagerectangle($img_1, 125, 175, 175, 225, $mycolor_1);//画一个矩形
	imagefilledrectangle($img_1, 125, 175, 175, 225, $mycolor_2);//画一个填充矩形
	imagearc($img_1, 100, 100, 50, 50, 0, 30, $mycolor_2);//单位角度的弧
	imagefilledarc($img_1, 50, 200, 100, 100, 30, 120, $mycolor_1,IMG_ARC_PIE);//一个扇形*/
	$add_image=imagecreatefromgif("./file/01.gif");//加载原图片
	$image_information=getimagesize("./file/01.gif");//获取图片的宽和高
	imagecopy($img_1, $add_image, 0, 0, 0, 0, $image_information[0], $image_information[1]);//复制目标图片到画板
	//imagestring($img_1, 5, 200, 200, "Hello徐宁", $mycolor_1);//写入字符,不建议,很弱
	$str1="你好!!";
	imagettftext($img_1, 10, 30, 200, 200, $mycolor_1, "./file/02.TTC", $str1);//可以去window/fonts去找。
	header("Content-type: image/png");//定义返回数据类型
	imagepng($img_1);//输出并保存图像
	imagedestroy($img_1);//销毁服务器资源

?>

下面是我测试制作柱状图的一份实例代码:

<?php
//创建画布
	$img_1=imagecreatetruecolor(500, 500);
	$white=imagecolorallocate($img_1, 255, 255, 255);
//填充画布的背景色
	imagefill($img_1, 0, 0, $white);
//分别对应红蓝灰还有他们的暗色
	$red=imagecolorallocate($img_1, 255,24,0);
	$darkred=imagecolorallocate($img_1, 146,12,0);
	$blue=imagecolorallocate($img_1, 11,6,139);
	$darkblue=imagecolorallocate($img_1, 5,5,52);
	$gary=imagecolorallocate($img_1, 193,193,193);
//从低至上进行叠加全部为暗色
	$darkgary=imagecolorallocate($img_1, 142,142,144);
	for($i=60; $i>=50; $i--){
		imagefilledarc($img_1, 100, $i, 100, 50, 0, 35, $darkblue, IMG_ARC_PIE);
		imagefilledarc($img_1, 100, $i, 100, 50, 35, 75, $darkgary, IMG_ARC_PIE);
		imagefilledarc($img_1, 100, $i, 100, 50, 75, 360, $darkred, IMG_ARC_PIE);
	}
//在最高层添加纯色层
	imagefilledarc($img_1, 100, 50, 100, 50, 0, 35, $blue, IMG_ARC_PIE);
	imagefilledarc($img_1, 100, 50, 100, 50, 35, 75, $gary, IMG_ARC_PIE);
	imagefilledarc($img_1, 100, 50, 100, 50, 75, 360, $red, IMG_ARC_PIE);
//定义,保存,显示,销毁
	header("Content-type: image/png");
	imagepng($img_1);
	imagedestroy($img_1);
?>

上面还涉及到一些简单的算法,不是很难,但相对比较麻烦,但其对于数据的动态展现优势是显而易见的。

时间: 2024-08-04 22:29:27

php中的绘图技术要点及应用总结的相关文章

HTML5技术要点

HTML5技术要点 1.HTML5视频 <!DOCTYPE HTML> <html> <body> <video src="/i/movie.ogg" width="320" height="240" controls="controls"> Your browser does not support the video tag. </video> </body

《环信支持千万并发即使通讯的技术要点》阅读摘要

一天早上起来,偶然机会看到<环信支持千万并发即使通讯的技术要点>演示文档,简单翻阅之后,感觉干货很多,于是快速记下以下笔记. 一.IM协议和IM Server XMPP确实很传统,WhatsApp选用了,同时经过压缩.精简(比如说user字符串使用u字符替代)处理,让XMPP轻量不少. MQTT,如何实现群组.好友呢,这个是业务层面上事情,大家都订阅某一个主题Topic好了,属于业务拓展. SIP,接触少. 微信私有协议ActivitySync,以前在博客上分享过. 正确拼写是WhatsApp

PHP 绘图技术

1.图片格式:目前网站开发常见的图片格式有gif,jpg/jpeg,png ..... 区别: gif 图片压缩率高,但是只能显示256色,可能造成颜色的丢失,可以显示动画 jpg/jpeg 图片压缩率高(有损压缩),可以用较小的文件来显示,网页上用得比较多 png 该格式综合了gif和jpg的优势,缺点是不能显示动画 2.通过PHP编程来绘图 <?php $width=800; $height=600; //绘图技术 基本步骤 前提:在php.ini文件中启用gd库 //创建画布 默认背景是黑

Android中Canvas绘图之PorterDuffXfermode使用及工作原理详解

概述 类android.graphics.PorterDuffXfermode继承自android.graphics.Xfermode.在用Android中的Canvas进行绘图时,可以通过使用PorterDuffXfermode将所绘制的图形的像素与Canvas中对应位置的像素按照一定规则进行混合,形成新的像素值,从而更新Canvas中最终的像素颜色值,这样会创建很多有趣的效果.当使用PorterDuffXfermode时,需要将将其作为参数传给Paint.setXfermode(Xfermo

android开发步步为营之24:milliondollars游戏技术要点代码生成控件和读取xml文件

Milliondollars智力问答游戏,主要的技术要点(一).读取题库数据xml文件(二).如何动态的生成题目和选项.这里做个总结,供以后参考. (一).读取题库数据xml文件 将assets/topics.xml文件读取 topics.xml格式: <?xml version="1.0" encoding="UTF-8"?> <book> <question topic="<全唐诗>是哪个时期的人编辑的?&qu

【PHP绘图技术&amp;&amp;验证码绘制】

PHP绘图是比较简单的事情,基本绘图如直线.圆.矩形.弧线.填充矩形.填充扇形.非中文字的打印.中文文字的打印在在下面的代码中会纤细讲解. 需要支持中文的字体,可以到windows自带的字体库中找,并复制到当前目录,改名为font.ttf 1 <?php 2 //1.创建画布 3 $im=imagecreatetruecolor(500,400); 4 //2.创建一个颜色 5 $red=imagecolorallocate($im,0,255,0); 6 //画圆 7 imageellipse

ThinkSNS开源社交系统基础技术要点

ThinkSNS采PHP+MySQL技术平台,社交核心+多应用+多插件机制. 下面我们将为大家介绍开源社交系统ThinkSNS基础的技术要点: 开源社交系统ThinkSNS中,应用都有一个配置文件,目前应用目录是apps/<app name> 所以,配置文件就是:"apps/<app name>/manage.json",下面有演示代码:    我们可以看到这是比较新的应用配置,老的应用中只需要配置"resource"项即可,配置这项后,静态

【MFC】MFC绘制动态曲线,用双缓冲绘图技术防闪烁

摘自:http://zhy1987819.blog.163.com/blog/static/841427882011614103454335/ MFC绘制动态曲线,用双缓冲绘图技术防闪烁 2011-07-14 10:34:54|  分类: 学习笔记 |  标签:双缓冲绘图技术  mfc  动态曲线   |举报 |字号 订阅 先上效果图 随着时间的推移,曲线向右平移,同时X轴的时间坐标跟着更新.一.如何绘制动态曲线. 所谓动画,都是一帧一帧的图像连续呈现在用户面前形成的.所以如果你掌握了如何绘制静

Windows-消息映射机制原理和简单的绘图技术

Windows-消息映射机制原理和简单的绘图技术 1.MFC消息映射机制 众所周知,Windows程序是基于消息编程的,但是在MFC中已经为我们封装好了这个框架的消息机制,我们需要了解它的实现原理,才能深入的学习和精通Visual C++. **(1).消息映射机制的原理: MFC消息映射机制的具体实现方法是,在每个能接收和处理消息的类中,定义一个消息和消息函数静态对照表,即消息映射表.在消息映射表中,消息与对应的消息处理函数指针是成对出现的.某个类能处理的所有消息及其对应的消息处理函数的地址都