精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖软件开发〗>>● ASP>>★ASP的技巧★>>图片处理>>如何用ASP返回图片?

主题:如何用ASP返回图片?
发信人: maxuejing10(☆绝情★狂煞)
整理人: dongbao(2002-04-19 16:37:35), 站内信件
    好东西大家分享:一个用来画图的组件(画饼图,条形图,各种形状图象的

组件) 

为什么说是个好东西了,大家看看下面的介绍就知道了 
该组件有两个版本,一个是注册版本,一个是非注册版本 
非注册版本功能:(虽然是非注册的,但是可以一直使用下去的哦,这也是一个为

什么我大力推荐的原因之一) 
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,"") //图片数据 就可换成写入你的二
进制数据 






[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]