Aspx中GDI+的常见几个应用
来源:互联网 发布:翻墙登录软件 编辑:程序博客网 时间:2024/05/23 19:21
绘制饼状图
-----------------------------------------------------------------
<%@ Page Language="vb" Debug="true" %>
<%@ import namespace="system.drawing" %>
<%@ import namespace="system.drawing.imaging" %>
<%@ import namespace="system.drawing.drawing2d" %>
<%@ import namespace="System.Drawing.Text" %>
<html>
<head>
<script language="vb" runat="server">
Sub Page_Load()
dim mChart= new ChartPie
mChart.addvalue(800,"北京分公司","blue")
mChart.addvalue(500,"上海分公司","red")
mChart.addvalue(300,"天津分公司","green")
mChart.addvalue(600,"重庆分公司","orange")
response.write( mChart.GetCount())
response.write(mChart.SaveChart)
response.write("<hr><IMG SRC='http://localhost/asp.net/gdi/1.jpeg' BORDER=0>")
End Sub
class ChartPie
private cNum
private iCount
private iSum as Integer
private cContent(3,20)
public Height
public Width
public FileName
Sub ChartPie_Init()
cNum=0
iCount=0
iSum=0
End Sub
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
'初始化对象
Dim b as new system.drawing.bitmap(720, 360, pixelformat.Format16bppRgb555)
dim g as graphics = graphics.fromimage(b)
Dim lbrush As New SolidBrush(color.blue)
dim i,iSize as Integer,iTemp
g.clear(color.white)
iSum=0
for i=1 to iCount
iSize = system.math.round(cContent(1,i) * 360 / cNum )
call fillarc(g,0,0,240,240,iSum,iSize,cContent(3,i))
savechart = savechart + "<br>" + cContent(2,i) + ":" + str(cContent(1,i))
iSum = iSum + iSize
next
FileName="C:/Inetpub/wwwroot/asp.net/gdi/1.jpeg"
b.save(FileName, imageformat.jpeg)
b.dispose()
End Function
private function fillarc(g,x1,y1,x2,y2,b,l,c1)
Dim blackPen As New Pen(Color.Black, 3)
Dim lbrush As New SolidBrush(Color.fromName(c1))
g.FillPie(lbrush,x1,y1,x2,y2,b,l)
end function
End Class
</script>
</head>
</html>
绘制柱状图
-----------------------------------------------
<%@ Page Language="vb" Debug="true" %>
<%@ 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(910,"北京分公司","blue")
mChart.addvalue(400,"重庆分公司","orange")
mChart.addvalue(500,"上海分公司","red")
mChart.addvalue(300,"天津分公司","green")
response.write(mChart.SaveChart)
response.write("<hr><IMG SRC='http://localhost/asp.net/gdi/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, 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/asp.net/gdi/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-60, height-80)
g.DrawRectangle(blackpen1, 40, 16, width-60, height-80)
g.DrawRectangle(blackpen2, 30, height-64, width-50, 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,16,width-14,10) '右上
g.Drawline(blackpen2,width-20,height-64,width-14,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>
折线图
--------------------------------------------------------------------
<%@ Page Language="vb" Debug="true" %>
<%@ 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 Chart
mChart.addvalue(185,"1")
mChart.addvalue(278,"2")
mChart.addvalue(185,"3")
mChart.addvalue(200,"4")
mChart.addvalue(217,"5")
mChart.addvalue(203,"6")
mChart.addvalue(251,"7")
mChart.addvalue(281,"8")
mChart.addvalue(297,"9")
mChart.addvalue(185,"10")
mChart.addvalue(278,"11")
mChart.addvalue(185,"12")
mChart.addvalue(200,"13")
mChart.addvalue(217,"14")
mChart.addvalue(233,"15")
mChart.addvalue(251,"16")
mChart.addvalue(281,"17")
mChart.addvalue(297,"18")
mChart.addvalue(281,"19")
mChart.addvalue(297,"20")
response.write( mChart.GetCount())
response.write ("<br>")
response.write(mChart.GetNum())
response.write ("<br>")
response.write(system.math.round(111 * 360 / 300 ))
mChart.SaveChart
response.write("<hr><IMG SRC='http://localhost/asp.net/gdi/1.jpeg' BORDER=0>")
End Sub
class Chart
private cNum
private iCount
private iSum as Integer
private cContent(2,20)
public Height
public Width
public FileName
Sub ChartPie_Init()
cNum=0
iCount=0
iSum=0
FileName="c:/1.gif"
End Sub
public Function AddValue(vnumber as Long, vtext as string)
if iCount>=20 then exit function
iCount=iCount + 1
cContent(1,iCount)=vnumber
cContent(2,iCount)=vtext
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
'初始化对象
Dim b as new bitmap(400, 200, pixelformat.Format16bppRgb555)
dim g as graphics = graphics.fromimage(b)
Dim blackPen As New Pen(Color.Black, 1)
Dim bluePen As New Pen(Color.Blue, 1)
dim i,iSize as Integer,iTemp
dim x1,y1,x2,y2
dim salign as new system.drawing.stringformat
salign.alignment = stringalignment.center
g.clear(color.pink)
iSum=0
x1=35
y1=320-cContent(1,1)
g.drawString(cContent(2,1), new font("Arial",10),Brushes.black,x1,170,salign)
for i=2 to iCount
savechart = savechart + "<br>" + cContent(2,i) + ":" + str(cContent(1,i))
x2=(i+1)*18
y2=320-cContent(1,i)
g.DrawLine(blackPen,x1,y1,x2,y2)
g.drawline(bluepen,x1,10,x1,160)
x1=x2
y1=y2
iSum = iSum + iSize
g.drawString(cContent(2,i), new font("Arial",10),Brushes.black,x1,170,salign)
next
g.DrawRectangle(bluePen,35,10,344,150)
FileName="C:/Inetpub/wwwroot/asp.net/gdi/1.jpeg"
b.save(FileName, imageformat.jpeg)
b.dispose()
End Function
End Class
</script>
绘一个字符串
-------------------------------
<%@ Page Language="vb" Debug="true" %>
<%@ import namespace="system.drawing" %>
<%@ import namespace="system.drawing.imaging" %>
<%@ import namespace="system.drawing.drawing2d" %>
<%@ import namespace="System.Drawing.Text" %>
<%
'初始化对象
Dim b as new system.drawing.bitmap(480, 180, pixelformat.Format16bppRgb555)
dim g as graphics = graphics.fromimage(b)
'定义画笔颜色
Dim blackBrush as new SolidBrush(Color.blue)
'定义字体类型
Dim familyName as new FontFamily("华文彩云")
'定义字体
Dim myFont as new Font(familyName, 36, FontStyle.Regular, GraphicsUnit.Pixel)
'设置起点
Dim startPoint as new PointF(10.0, 20.0)
g.clear(color.white) '设置白色背景颜色
'绘制字符串
g.DrawString("Hello World! 华文彩云", myFont, blackBrush, startPoint)
'设置输出contenttype属性
response.contenttype="image/gif"
'向浏览器发送图象
b.save(response.outputstream, imageformat.gif)
b.dispose()
%>
--------------------------
<img src=???.aspx>也可以<img src=<%methoed()%>>
<img src=???.asp>asp中能调用图片,而现在可以真正的生成图片
- Aspx中GDI+的常见几个应用
- mfc中gdi+的简单应用
- GDI+中常见的几个问题(7)多帧图像
- Web应用开发过程中常见的几个中文问题及其解决方法
- 【原型设计】手机应用加载过程中常见的几个错误
- 【原型设计】手机应用加载过程中常见的几个错误
- GDI 绘图的几个技巧
- java中常见的几个错误
- spring mvc中常见的几个controller
- SEO中最常见的几个错误
- SEO中最常见的几个错误:
- jascript中常见的几个兼容问题
- jascript中常见的几个兼容问题
- java中几个常见的基础问题
- java中多线程常见的几个参数
- SSIS中常见的几个错误
- configure 中常见的几个命令
- GDI+ DrawImage的应用
- rms返回值不同(手机的原因)
- 用C#创建access文件
- 项目结束技术总结
- regular
- 我的BOLG开通了!
- Aspx中GDI+的常见几个应用
- C#用鼠标绘图笔记(二)
- 经典推荐--程序员之打油诗
- mac地址更改全攻略
- 用C#压缩和修复Access数据库
- 在类型定义时,请喜欢typedef而不是define
- JAVA中代理与反射的应用(附源码)
- 列出本机所有串口
- 基于ActiveX 控件开发动态Web页