<%@ Page Language="vb" Debug="true" ContentType="text/html" %>
<%@ import namespace="system.Drawing" %>
<%@ import namespace="system.Drawing.imaging" %>
<%@ import namespace="system.Drawing.Drawing2d" %>
<%@ import namespace="System.Drawing.Text" %>
<script language="vb" runat="server">
Sub Page_Load()
Dim mChart= new ChartColumn
mChart.addvalue(100,"北京分公司","blue")
mChart.addvalue(600,"重庆分公司","orange")
mChart.addvalue(500,"上海分公司","red")
mChart.addvalue(300,"天津分公司","green")
mChart.addvalue(900,"成都分公司","orange")
response.write(mChart.SaveChart)
response.write("<hr><IMG SRC='http://localhost/1.jpeg' ALT='' BORDER=0>")
End Sub
class ChartColumn
Private cNum
Private iCount
Private iSum as Integer
Private cContent(3,20)
Private maxData as single
Public Height as long
Public Width as long
Public FileName
Public Function AddValue(vnumber as Long, vtext as string ,vcolor as string)
if iCount>=20 then exit function
iCount=iCount + 1
cContent(1,iCount)=vnumber
cContent(2,iCount)=vtext
cContent(3,iCount)=vcolor
cNum=cNum + vNumber
End Function
Public Function GetCount() as long
GetCount=iCount
End Function
Public Function GetNum() as long
GetNum=cNum
End Function
Public Function SaveChart() as string
'初始化对象
if Height<60 then Height=300
if Width<100 then Width=400
Dim b as new bitmap( Width+300, Height, pixelformat.Format16bppRgb555)
Dim g as graphics = graphics.fromimage(b)
Dim lbrush As New SolidBrush(color.blue)
Dim i,iSize as Integer,iTemp,i1 as single,i2 as single
Dim i3 as single,i4 as single
g.clear(color.AliceBlue)
iSum=0
for i=1 to iCount
if cContent(1,i) > maxdata then maxdata=cContent(1,i)
next
maxdata=(maxdata * 1.15 \ 100 ) * 100
call Drawback(g,0,0)
i1=(width-80)/4
i3 = i1 / 4
for i=1 to iCount
i2 = cContent(1,i) / maxdata * (Height-80)
i4 = height - 64 - i2
iSize = system.math.round(cContent(1,i) * 360 / cNum )
DrawColumn(g,50+(i-1)*i1+i3,i4,i2,2*i3,cContent(3,i),cContent(2,i))
savechart = savechart + "<br>" + cContent(2,i) + ":" + str(cContent(1,i))
iSum = iSum + iSize
next
FileName="C:\Inetpub\wwwroot\1.jpeg"
b.save(FileName, imageformat.jpeg)
b.dispose()
End Function
Private function Drawback(g,x1,y1)
Dim i
Dim dashValues As Single() = {3, 2, 3, 2}
Dim blackPen1 As New Pen(Color.Black, 1)
Dim h1 as single
Dim salign as new system.Drawing.stringformat
salign.alignment = stringalignment.center
blackPen1.DashPattern = dashValues
Dim blackPen2 As New Pen(Color.Black, 1)
g.DrawRectangle(blackpen1, 46, 10, width, height-80)
g.DrawRectangle(blackpen1, 40, 16, width, height-80)
g.DrawRectangle(blackpen2, 30, height-64, width+10, 1)
g.DrawRectangle(blackpen2, 40, 16, 1, height-80)
g.Drawline(blackpen2,40,16,46,10) '左上
g.Drawline(blackpen2,40,height-64,46,height-70) '左下
g.Drawline(blackpen2,width-20+60,16,width-14+60,10) '右上
g.Drawline(blackpen2,width-20+60,height-64,width-14+60,height-70) '右下
h1=(height-80) / 20
for i=0 to 20
if i mod 5 = 0 then
g.DrawString((20-i)*maxdata/20, new font("Arial",10),Brushes.black,15,i*h1+9,salign)
g.Drawline(blackpen2,30,i*h1+16,40,i*h1+16)
else
g.Drawline(blackpen2,35,i*h1+16,40,i*h1+16)
End if
next
End function
Private function DrawColumn(g,x1,y1,h1,w1,c1,t1)
Dim linGrBrush As New LinearGradientBrush( _
New Point(10,y1-100), _
New Point(10,y1+h1+100), _
Color.FromArgb(255, 255, 255, 255), _
Color.fromName(c1))
Dim lbrush1 As New SolidBrush(Color.fromName(c1))
Dim point1 as new PointF(x1, y1)
Dim point4 as new PointF(x1+w1, y1)
Dim point2 as new PointF(x1+6, y1-6)
Dim point3 as new PointF(x1+6+w1, y1-6) Dim curvePoints1 As PointF() = {point1, point2, point3, point4}
Dim point5 as new PointF(x1+w1, y1)
Dim point6 as new PointF(x1+w1+6, y1-6)
Dim point7 as new PointF(x1+w1+6, y1+h1-6)
Dim point8 as new PointF(x1+w1, y1+h1)
Dim curvePoints2 As PointF() = {point5, point6, point7, point8}
g.FillPolygon(lBrush1, curvePoints1)
g.FillPolygon(lBrush1, curvePoints2)
g.FillRectangle(linGrBrush,x1, y1, w1, h1)
Dim salign as new system.Drawing.stringformat
salign.alignment = stringalignment.center
g.DrawString(t1, new font("Arial",10),Brushes.black, _
x1+20,y1+h1+10,salign)
End function
End Class
</script>
<%@ import namespace="system.Drawing" %>
<%@ import namespace="system.Drawing.imaging" %>
<%@ import namespace="system.Drawing.Drawing2d" %>
<%@ import namespace="System.Drawing.Text" %>
<script language="vb" runat="server">
Sub Page_Load()
Dim mChart= new ChartColumn
mChart.addvalue(100,"北京分公司","blue")
mChart.addvalue(600,"重庆分公司","orange")
mChart.addvalue(500,"上海分公司","red")
mChart.addvalue(300,"天津分公司","green")
mChart.addvalue(900,"成都分公司","orange")
response.write(mChart.SaveChart)
response.write("<hr><IMG SRC='http://localhost/1.jpeg' ALT='' BORDER=0>")
End Sub
class ChartColumn
Private cNum
Private iCount
Private iSum as Integer
Private cContent(3,20)
Private maxData as single
Public Height as long
Public Width as long
Public FileName
Public Function AddValue(vnumber as Long, vtext as string ,vcolor as string)
if iCount>=20 then exit function
iCount=iCount + 1
cContent(1,iCount)=vnumber
cContent(2,iCount)=vtext
cContent(3,iCount)=vcolor
cNum=cNum + vNumber
End Function
Public Function GetCount() as long
GetCount=iCount
End Function
Public Function GetNum() as long
GetNum=cNum
End Function
Public Function SaveChart() as string
'初始化对象
if Height<60 then Height=300
if Width<100 then Width=400
Dim b as new bitmap( Width+300, Height, pixelformat.Format16bppRgb555)
Dim g as graphics = graphics.fromimage(b)
Dim lbrush As New SolidBrush(color.blue)
Dim i,iSize as Integer,iTemp,i1 as single,i2 as single
Dim i3 as single,i4 as single
g.clear(color.AliceBlue)
iSum=0
for i=1 to iCount
if cContent(1,i) > maxdata then maxdata=cContent(1,i)
next
maxdata=(maxdata * 1.15 \ 100 ) * 100
call Drawback(g,0,0)
i1=(width-80)/4
i3 = i1 / 4
for i=1 to iCount
i2 = cContent(1,i) / maxdata * (Height-80)
i4 = height - 64 - i2
iSize = system.math.round(cContent(1,i) * 360 / cNum )
DrawColumn(g,50+(i-1)*i1+i3,i4,i2,2*i3,cContent(3,i),cContent(2,i))
savechart = savechart + "<br>" + cContent(2,i) + ":" + str(cContent(1,i))
iSum = iSum + iSize
next
FileName="C:\Inetpub\wwwroot\1.jpeg"
b.save(FileName, imageformat.jpeg)
b.dispose()
End Function
Private function Drawback(g,x1,y1)
Dim i
Dim dashValues As Single() = {3, 2, 3, 2}
Dim blackPen1 As New Pen(Color.Black, 1)
Dim h1 as single
Dim salign as new system.Drawing.stringformat
salign.alignment = stringalignment.center
blackPen1.DashPattern = dashValues
Dim blackPen2 As New Pen(Color.Black, 1)
g.DrawRectangle(blackpen1, 46, 10, width, height-80)
g.DrawRectangle(blackpen1, 40, 16, width, height-80)
g.DrawRectangle(blackpen2, 30, height-64, width+10, 1)
g.DrawRectangle(blackpen2, 40, 16, 1, height-80)
g.Drawline(blackpen2,40,16,46,10) '左上
g.Drawline(blackpen2,40,height-64,46,height-70) '左下
g.Drawline(blackpen2,width-20+60,16,width-14+60,10) '右上
g.Drawline(blackpen2,width-20+60,height-64,width-14+60,height-70) '右下
h1=(height-80) / 20
for i=0 to 20
if i mod 5 = 0 then
g.DrawString((20-i)*maxdata/20, new font("Arial",10),Brushes.black,15,i*h1+9,salign)
g.Drawline(blackpen2,30,i*h1+16,40,i*h1+16)
else
g.Drawline(blackpen2,35,i*h1+16,40,i*h1+16)
End if
next
End function
Private function DrawColumn(g,x1,y1,h1,w1,c1,t1)
Dim linGrBrush As New LinearGradientBrush( _
New Point(10,y1-100), _
New Point(10,y1+h1+100), _
Color.FromArgb(255, 255, 255, 255), _
Color.fromName(c1))
Dim lbrush1 As New SolidBrush(Color.fromName(c1))
Dim point1 as new PointF(x1, y1)
Dim point4 as new PointF(x1+w1, y1)
Dim point2 as new PointF(x1+6, y1-6)
Dim point3 as new PointF(x1+6+w1, y1-6) Dim curvePoints1 As PointF() = {point1, point2, point3, point4}
Dim point5 as new PointF(x1+w1, y1)
Dim point6 as new PointF(x1+w1+6, y1-6)
Dim point7 as new PointF(x1+w1+6, y1+h1-6)
Dim point8 as new PointF(x1+w1, y1+h1)
Dim curvePoints2 As PointF() = {point5, point6, point7, point8}
g.FillPolygon(lBrush1, curvePoints1)
g.FillPolygon(lBrush1, curvePoints2)
g.FillRectangle(linGrBrush,x1, y1, w1, h1)
Dim salign as new system.Drawing.stringformat
salign.alignment = stringalignment.center
g.DrawString(t1, new font("Arial",10),Brushes.black, _
x1+20,y1+h1+10,salign)
End function
End Class
</script>
解决方案 »
- 怎么获取repeater中 客户端的text value呀
- Linux 复制文件出错
- ExecuteReader: Connection 属性尚未初始化。
- ASP.NET后台 存不确定个数的控件的值
- 简单,关于frameset。
- 大家好我怎么在网页中直接打开一个WORD文档然后对其进行修改后另存?
- 我有一段改写文本文件的内容的代码,运行一下子可以,一下子又不可以,说异常详细信息: System.NullReferenceException: 未将对象引用设
- HttpWebRequest
- 未能加载文件或程序集“vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不
- 水晶报表问题,希望大家给看看!!!
- 一个有关asp.net发送EMAIL
- ASP.Net的CheckBox解析到前台的的Value值 是什么属性
Graphics g = System.Drawing.Graphics.FromImage(bmp);
g.DrawLine(new Pen(new SolidBrush(Color.Red),2),0,0,150,100);
bmp.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Gif);