<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      使用AspImage制作圖形(一)

      [摘要]/*豆腐制作,都是精品http://www.asp888.net 豆腐技術站如轉載,請保留完整版權信息*/很久沒有給大家帶來新的文章了,最近豆腐忙于公司的業務,怠慢了各位朋友,在這里給大家先說一聲對不起了,沒有辦法,豆腐也要生活呀。aspImage是serverobjects站點上非常好的一個組件...
      /*
      豆腐制作,都是精品
      http://www.asp888.net 豆腐技術站
      如轉載,請保留完整版權信息
      */

      很久沒有給大家帶來新的文章了,最近豆腐忙于公司的業務,怠慢了各位朋友,在這里給大家先說一聲
      對不起了,沒有辦法,豆腐也要生活呀。
      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://www.okasp.com/techinfo/test.jpg")
      Image.SaveImage

      set Image=nothing
      Response.Write "<img src=http://www.okasp.com/techinfo/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
      這端代碼是最終生成柱圖的代碼,具體我就不解釋了。



      日韩精品一区二区三区高清