发信人: apee() 
整理人: nightcat(2000-03-09 03:13:47), 站内信件
 | 
 
 
    好东西大家分享:一个用来画图的组件(画饼图,条形图,各种形状图象的 
 组件)
 
 为什么说是个好东西了,大家看看下面的介绍就知道了
 该组件有两个版本,一个是注册版本,一个是非注册版本
 非注册版本功能:(虽然是非注册的,但是可以一直使用下去的哦,这也是一个为 
 什么我大力推荐的原因之一)
 1。可生成JPEG格式的图形文件
 2。可生成透明的GIF格式的图形文件
 3。可生成交错的GIF格式的图形文件
 4。可以使用两种方式保存图形文件:一种是直接生成图形文件
    另外一种是保存到数组中然后直接输出到WWW页面中
 5。可以绘制文本图形,并且支持安装在你机器上的任何字体的文本
 6。可以导出和预览由OLE服务程序生成的文档,例如MS Word,Excel等等。 
 7。可以使用位图方式自由的缩放,镜像,旋转和剪切图形
 8。可使用本地图形缓存
 9。可以ZOOM图片
 10。可以获取任何JPEG, GIF ,BMP格式文件的详细信息
 11。可以进行Windows抓屏
 12。可生成动态GIF
 非注册版本的限制如下:
 1。只能够最多使用8种颜色,不过我认为对大多数人来说根本不算什么限制的, 
 呵呵
 2。能够生成的最大图形尺寸为320x240
 如果是注册版本:
 13。可在线修改现有的GIF, JPEG 和 BMP文件
 14。可自定义调色板
 15。可循环放映GIF动画
 
 例子程序:
 VBScript的例子:
 
 set obj=CreateObject("shotgraph.image")
 size=201
 obj.CreateImage size,size,4
 obj.SetColor 0,255,255,255
 obj.SetColor 1,0,0,0
 obj.SetColor 2,255,108,0
 obj.SetColor 3,0,0,204
 obj.SetBgColor 0
 obj.FillRect 0,0,size-1,size-1
 obj.SetDrawColor 1
 obj.Line size-1,0,0,size-1
 obj.SetBgColor 2
 obj.Ellipse 5,5,size-6,size-6
 obj.SetBgColor 3
 obj.Ellipse 5,(size-5)/4,size/2,(size-5)*3/4
 obj.GifImage 0,1,"test.gif"
 ASP的例子代码:
 
 Response.ContentType="image/gif"
 set obj=Server.CreateObject("shotgraph.image")
 size=201
 obj.CreateImage size,size,4
 obj.SetColor 0,255,255,255
 obj.SetColor 1,0,0,0
 obj.SetColor 2,255,108,0
 obj.SetColor 3,0,0,204
 obj.SetBgColor 0
 obj.FillRect 0,0,size-1,size-1
 
 obj.SetDrawColor 1
 obj.Line size-1,0,0,size-1
 obj.SetBgColor 2
 obj.Ellipse 5,5,size-6,size-6
 obj.SetBgColor 3
 obj.Ellipse 5,(size-5)/4,size/2,(size-5)*3/4
 
 img=obj.GifImage(0,1,"")
 Response.BinaryWrite img 
 
 那么如何画动画呢,步骤如下:
 1.Create一个"shotgraph.image"对象
 2.随便画点东西把,就看你的创意了
 3.调用TrackAdd函数
 4.重复2,3步知道你想要的祯数
 5.如果想要重复放动画,调用TrackLoop方法,不过只有注册版本有此功能
 6.调用TrackPlay方法生成这个动化文件
 例子代码如下:
 set obj=CreateObject("shotgraph.image")
 xsize=400
 ysize=50
 
 obj.CreateImage xsize,ysize,256
 obj.InitClipboard xsize,ysize*2
 obj.SelectClipboard True
 obj.ReadImage "frame1.gif",pal1,0,0
 obj.ReadImage "frame2.gif",pal2,0,ysize
 obj.BuildPalette 0
 
 obj.Copy 0,0,xsize,ysize,0,0,"SRCCOPY"
 obj.TrackAdd -1,0,0,0,0,xsize,ysize,50
 obj.Copy 0,0,xsize,ysize,0,ysize,"SRCCOPY"
 obj.TrackAdd -1,0,0,0,0,xsize,ysize,50
 
 obj.TrackLoop 0
 obj.TrackPlay "frames12.gif"
 
 怎么画文本文字呢,呵呵,过程如下:
 使用时,请注意FontSmoothing这个属性:
 它是用来定义文字是否防锯齿的。
 0 - 使用系统默认设置
 1 - 不防锯齿
 2 - 防锯齿
 代码如下:
 
 <%
 Response.Contenttype="image/gif"
 Set g=CreateObject("shotgraph.image")
 g.CreateImage 320,200,16
 g.SetColor 0,255,255,255
 g.SetColor 1,0,0,0
 g.SetBgColor 0
 g.SetTextColor 1
 g.FillRect 0,0,320,200
 g.FontSmoothing=1
 g.CreateFont "Arial",0,42,0,True,False,False,False
 g.TextOut 0,30,"Non-Antialiased"
 g.FontSmoothing=2
 g.CreateFont "Arial",0,42,0,True,False,False,False
 g.TextOut 0,120,"Antialiased"
 g.BuildPalette 2
 Response.BinaryWrite g.GifImage(-1,0,"")
 %>
 
 下载地址:
 http://download.proxy.ru/mike/shotgraph/
 http://www.geocities.com/SiliconValley/Foothills/9219/shotgraph/
 --------------------------
 以上摘自 www.Chinaasp.com
 
 通过上面这篇文章,我们可以明白,关键是在输出数据之前,需要显输出一个文件类 
 型的定义.
 这样浏览器就知道你送过来的不是文本而是图片,或其他的什么,比如声音,电影. 
 
 Response.Contenttype="image/gif" //输出文件类型
 
 .....    //这里就可以替换成 读入硬盘图片文件二进制数据
 
 Response.BinaryWrite g.GifImage(-1,0,"") //图片数据 就可换成写入你的二 进制数据
 
 ...
 
 
 --------------------------
 以上摘自 www.Chinaasp.com
 
 通过上面这篇文章,我们可以明白,关键是在输出数据之前,需要显输出一个文件类 型的定义.
 Response.Contenttype="image/gif" //文件类型
 .....
 Response.BinaryWrite g.GifImage(-1,0,"") //图片数据
 
 这样浏览器就知道你送过来的不是文本而是图片,或其他的什么,比如声音,电影. ...
  --  ************************************ 
 **     @                      @     **
 **    @ @ 吹球球, 吹个大气球. @ @    **
  **    @                      @    ** 
   **********************************  
  ※ 修改:.apee 于 Oct 11 16:25:37 修改本文.[FROM: 210.72.252.200] ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.72.252.200]
  | 
 
 
 |