首 页 网站运营 网络编程 网页制作 图象媒体 数据库 建站资源 网管专区 下载专区 最新资讯
IT学堂|红色黑客联盟
设为首页
加入收藏
联系站长
您所在的位置:首页>网络编程>ASP>文章内容
使用AspImage制作图形(一)
来源: 作者: 发布时间:2007-04-12

很久没有给大家带来新的文章了,最近豆腐忙于公司的业务,怠慢了各位朋友,在这里给大家先说一声
对不起了,没有办法,豆腐也要生活呀。
aspImage是serverobjects站点上非常好的一个组件,它可以使我们利用Asp实现很多对于图形的处理功能。
比如,豆腐在最近的项目中就需要对 费用进行统计,要画 柱图,饼图,等等,都需要用到这个组件。
这个组件本身没有内置柱图的功能,我们需要自己做这样的函数,还是老规矩,我们先来看看代码吧。
Function DrawPillar(arrNum)
'这个函数的功能是 生成 一个 柱图
'**************以下是变量定义********************
dim arrColor(13)
dim arrNum1()
dim i
dim intX
dim intY
'--------------以下是代码开始--------------------
i=0
arrColor(i)=RGB(255,255,255)
i=i+1
arrColor(i)=RGB(255,255,0)
i=i+1
arrColor(i)=RGB(255,0,255)
i=i+1
arrColor(i)=RGB(0,255,255)
i=i+1
arrColor(i)=RGB(255,0,0)
i=i+1
arrColor(i)=RGB(0,255,0)
i=i+1
arrColor(i)=RGB(0,0,255)
i=i+1
arrColor(i)=RGB(255,255,255)
i=i+1
arrColor(i)=RGB(255,255,0)
i=i+1


arrColor(i)=RGB(255,0,255)
i=i+1
arrColor(i)=RGB(0,255,255)
i=i+1
arrColor(i)=RGB(255,0,0)
i=i+1
arrColor(i)=RGB(0,255,0)
i=i+1
arrColor(i)=RGB(0,0,255)
i=i+1

intMax=GetMaxY(arrNum)

Set Image = Server.CreateObject("AspImage.Image")
Image.MaxX=620
Image.MaxY=300

intRatio=(Image.MaxY-40)/intMax

Image.GradientTwoWay rgb(41,137,204),vbWhite ,0,1


'Image.BackgroundColor =vbBlue
'Image.FrameRect 15,15,Image.MaxX -15,Image.MaxY -15

'Y 轴
Image.X =40+2
Image.Y =15
Image.LineTo 40+2,Image.MaxY-20
Image.TextOut "↑",40-5,14,false
Image.TextOut "单位:元",15,0,false
for i=1 to 10
Image.TextOut "-" ,40,((Image.MaxY-40)/10)*i,false
'Image.TextOut cDBL((intMax/10))*(i),0,((Image.MaxY-40)/10)*(11-i),false
next

'X轴
Image.X =Image.MaxX-15
Image.Y =Image.MaxY-20
Image.LineTo 40,Image.MaxY-20

Image.TextOut ">",Image.MaxX-15-4 ,Image.MaxY-20-9,false
for i=1 to 12
Image.TextOut i & "月" ,40+ i * (30+15) -20 ,Image.MaxY-20,false


next

if intMax=0 then
intMax=1
end if

'一年有12个月,产生 12个 颜色
intX=40

for i=0 to 11
Image.BackgroundColor = arrColor(i)
Image.Rectangle intX+20,Image.MaxY -20 , intX+50, Image.MaxY -20 - arrNum(i)*intRatio
Image.TextOut arrNum(i),intX+20, Image.MaxY -32 - arrNum(i)*intRatio , false
intX=intX+ 30 +15
next
Image.FileName=server.MapPath("test.jpg")
Image.SaveImage

set Image=nothing
Response.Write "<img src=test.jpg>"
End Function

function GetMaxY(arrNum)
'这个函数的功能是 得到数组中最大 的数字
'***************以下是变量定义************
dim i
dim intMax '寄存器
'---------------以下是代码开始------------
intMax=0
for i=0 to UBOUND(arrNum)
if cDbl(intMax)< cDBL(arrNum(i)) then
intMax=arrNum(i)
end if
Next

GetMaxY=intMax
End Function

我们通过代码Set Image = Server.CreateObject("AspImage.Image")得到一个AspImage的实例,现在
我们就可以利用AspImage提供给我们的动人功能了。
Image.MaxX=620
Image.MaxY=300
我们可以设定我们需要画的图形的区域。
Image.GradientTwoWay rgb(41,137,204),vbWhite ,0,1
这是一个非常非常好的方法,我们可以给这个图片的背静添加一个渐进填充的颜色。

'Y 轴
Image.X =40+2
Image.Y =15
Image.LineTo 40+2,Image.MaxY-20
Image.TextOut "↑",40-5,14,false
Image.TextOut "单位:元",15,0,false
for i=1 to 10
Image.TextOut "-" ,40,((Image.MaxY-40)/10)*i,false
next

这段代码是一个画 Y 轴的代码,不要小看这个"↑",豆腐花了很长的时间才搞定的。:)
'X轴
Image.X =Image.MaxX-15
Image.Y =Image.MaxY-20
Image.LineTo 40,Image.MaxY-20

Image.TextOut ">",Image.MaxX-15-4 ,Image.MaxY-20-9,false
X轴相对来说就简单多了。

'一年有12个月,产生 12个 颜色
intX=40

for i=0 to 11
Image.BackgroundColor = arrColor(i)
Image.Rectangle intX+20,Image.MaxY -20 , intX+50, Image.MaxY -20 - arrNum(i)*intRatio
Image.TextOut arrNum(i),intX+20, Image.MaxY -32 - arrNum(i)*intRatio , false
intX=intX+ 30 +15
next
这端代码是最终生成柱图的代码,具体我就不解释了。

转自:动态网制作指南 www.knowsky.com



[推荐] [返回顶部] [打印本页] [关闭窗口]
热点文章
·ASP如何获取客户端真实IP地址
·ASP实现可显示和隐藏的树型菜单
·用ASP动态生成JS的表单验证代码
·ASP:用Asp编程实现QQ的在线情况查询
·ASP:用ASP打造一个小型的网页BBS系统
·ASP:用ASP编程实现网络内容快速查找
·ASP:利用ASP把图片上传到数据库
·ASP无法更新ACCESS数据库解决方法
·如何对ASP.NET进行性能优化
·入门:防范SQL注入攻击的新办法
相关文章
·使用AspImage制作图形(二)
·用ASP+XML打造留言本(2)
·无组件图文混合上传示例
·用ASP+XML打造留言本(1)
·ASP.NET发送ICQ信息DIY(2)
·用ASP+XML打造留言本(3)
·股票报价的WebService之五
·用ASP+XML打造留言本(4)
·ASP.NET发送ICQ信息DIY(1)
·用asp怎样编写文档搜索页面(1)
文章检索
Google
相关文章
·使用AspImage制作图形(
·用ASP+XML打造留言本(2)
·无组件图文混合上传示例
·用ASP+XML打造留言本(1)
·ASP.NET发送ICQ信息DIY(
·用ASP+XML打造留言本(3)
·股票报价的WebService之
·用ASP+XML打造留言本(4)
·ASP.NET发送ICQ信息DIY(
·用asp怎样编写文档搜索
·股票报价的WebService之
·用asp怎样编写文档搜索
·股票报价的WebService之
·用asp怎样编写文档搜索
·股票报价的WebService之