使用AspImage制作图形(一)

很久没有给大家带来新的文章了,最近豆腐忙于公司的业务,怠慢了各位朋友,在这里给大家先说一声
对不起了,没有办法,豆腐也要生活呀。
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("http://edu.cnzz.cn/NewsInfo/test.jpg")
Image.SaveImage

set Image=nothing
Response.Write "<img src=http://edu.cnzz.cn/NewsInfo/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

时间: 2024-09-02 11:45:03

使用AspImage制作图形(一)的相关文章

使用AspImage制作图形(二)

前面我们讲了如何利用AspImage来制作柱图,柱图还好办,起码有关于长方形的函数,我们可以来借用,但是如果是,饼图怎么办?有的朋友不是说了,AspImage上不是有Pie的函数吗?是呀,它是有,但是它的那个也太难用了.豆腐没有办法,经过同事的帮助,利用我们高中学习的三角形公式(三角形公式?有没有搞错?)终于做出了这样的函数,而且使用起来非常的方便.大家请看Function DrawPie(ArrNum,arrText)'函数功能:根据指定的 数值和显示,他们均是 数组'**********以下

mac版 eclipse在使用AWT制作图形时,添加PopupMenu组件,右键没有用

问题描述 mac版 eclipse在使用AWT制作图形时,添加PopupMenu组件,右键没有用 下面是我的代码,在windows上面可以使用,右键也会出现东西,在mac上面没有用public class PopupMenuTest { private Frame f=new Frame(""测试""); PopupMenu pop=new PopupMenu(); MenuItem copyItem= new MenuItem(""复制&quo

WPS文字中如何利用公式编辑器制作图形标注

一般在制作标注时,我们往往会用文本框加文字来实现,但是文本框的边框样式及内部边距都需要设置,操作起来非常繁琐.不仅如此,而且占据的空间也非常大,往往几个文本框叠加在一起,不易分辨.其实我们可以使用WPS公式编辑器设置图形标注. WPS文字中利用公式编辑器制作标注 ①首先画图,将图形设为文字"环绕"型; ②启动公式编辑器,输入标注文字; ③退出编辑器,如图 ④WPS认为此公式文字为"图片",并且默认为"嵌入"型,只需将它改成"环绕&quo

WPS演示中自己制作图形的技巧

  上面小编已经和大家讲了在WPS演示中插入图片的方法,但是在制作演示文稿的时候,常会插入一些形象的形状图片来代表某意义,下面小编就告诉大家如何在WPS演示中插入自选图片. 首先打开wps演示文稿,你可以在其中点击选择需要的图形,如下图所示: 自选图片 在上述操作中点击某个图形后,你的光标会变成十字形状. 按鼠标左键并且拖动光标就可以拖出你选择的图形了,同时你可以在菜单栏的形状样式中改变图形的颜色.轮廓及文本颜色. 以上就是WPS演示中插入自选图片的方法步骤.首先要选择你要的图形形状,然后在幻灯

WPS演示制作图形插入图片

  ①首先单击插入--形状,选择一款形状插入到幻灯片中. ②鼠标左键按住不放,画出图形,调整大小位置. ③右击图形,选择设置对象格式. ④在颜色中选择填充效果. ⑤点击选择图片按钮,选取本地图片打开. ⑥图片插入到图形里面,至此制作完成.

用 Microsoft Expression Design 制作图形资源

转自http://www.cnblogs.com/allofalan/archive/2012/04/09/2439010.html 在WPF中 控件背景可以指定为资源,形如   <Rectangle Name="NewSubNode" Fill="{DynamicResource MyRectSource}"> </Rectangle> 那么,MyRectSource是如何制作的呢,这里就用到了 Design 在Design画好 图形,这里

用ASP+制作图形

asp+|图形 001 <% @Page Language="C#" %>002 <% @Import Namespace="System.Drawing" %>003 <% @Import Namespace="System.IO" %>004 <% @Import Namespace="System.Drawing.Imaging" % >005 <%006 Respo

ASP.NET中制作图形

asp.net|图形 这个程序经过修改 现在作计数器的话 只能做黑白的 计数器,谁有办法 能够做出 复杂的 图形计数器? <% @Page Language="C#" %> <% @Import Namespace="System.Drawing" %> <% @Import Namespace="System.IO" %> <% @Import Namespace="System.Drawin

Java程序中用JFreeChart制作图形报表

一.需求分析 我家领导认为,在是否嫁给我做老婆的问题上,应该有更加科学的决策模型.如果能够将每天的感情生活量化,且以时间为X轴,生成数据报表,就可以为她的决策提供数据支持.秉着以领导意志为导向的基本原则,开发了本软件,为家庭信息化建设提供新的思路. 二.系统概述 本系统的基本功能是,接收用户每天的输入并保存,月/季度/年度末生成数据折线图.周期环比柱状图.由于投入资金有限(不让我往外掏钱就已经很不错了),所以本软件的1.0版采用单机应用程序,使用Access数据库.如果市场推广情况良好,不排除推