100分求。急用,高手请进!!求教在ASP服务端动态生成图片,先谢了

jwls 2003-02-27 10:55:53
小弟在工作中碰到
需要在ASP服务端动态生成图片发送至客户端浏览器,采用何种组件?
最好有demo。
不知有无基于下列两种组件的源程序
chartdir_com_win32.exe
SwiffChartGen251-WNT.exe
e-mail:alex_g@citiz.net
qq:29876507
...全文
89 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzllfcn 2003-07-18
  • 打赏
  • 举报
回复
这两个组件可以试试
aspimage
iWebPhoto

还有一个方法:首先声明我也是刚学的,呵呵
用adodb.stream取得图片的实际高度的宽度然后再按比例放大和缩小
<!--#INCLUDE file="bahan.inc" -->
<!--#INCLUDE file="xwsadfadsfasdfagsjdfhadfgdfg.asp" -->
<%
dim tp
tp=request("tp")
set qswh=new qswhImg
arr=qswh.getImageSize(server.mappath("../html/images/"&tp))
dim fil
fil=arr(0)
dim k
dim g
dim x
dim sk
dim sg
g=arr(2)
sg=g
k=arr(1)
sk=k
if k>150 then
x=k/150
g=g/x
k=150
end if
if g<1 then
g=1
end if
if g>120 then
x=g/120
k=k/x
g=120
end if
if k<1 then
k=1
end if
Set qswh=nothing
dim rs
dim stt
set rs=Server.CreateObject("ADODB.Recordset")
stt = "Select * from TP where TP='"&tp&"'"
rs.open stt,conn,1,3
rs("K").value=k
rs("G").value=g
rs("SK").value=sk
rs("SG").value=sg
rs.Update
rs.close
response.redirect("listtp.asp")
%>




bahan.inc


<%
Class qswhImg
dim aso
Private Sub Class_Initialize
set aso=CreateObject("Adodb.Stream")
aso.Mode=3
aso.Type=1
aso.Open
End Sub
Private Sub Class_Terminate
set aso=nothing
End Sub
Private Function Bin2Str(Bin)
Dim I, Str
For I=1 to LenB(Bin)
clow=MidB(Bin,I,1)
if ASCB(clow)<128 then
Str = Str & Chr(ASCB(clow))
else
I=I+1
if I <= LenB(Bin) then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))
end if
Next
Bin2Str = Str
End Function
Private Function Num2Str(num,base,lens)
'qiushuiwuhen (2002-8-12)
dim ret
ret = ""
while(num>=base)
ret = (num mod base) & ret
num = (num - num mod base)/base
wend
Num2Str = right(string(lens,"0") & num & ret,lens)
End Function
Private Function Str2Num(str,base)
'qiushuiwuhen (2002-8-12)
dim ret
ret = 0
for i=1 to len(str)
ret = ret *base + cint(mid(str,i,1))
next
Str2Num=ret
End Function
Private Function BinVal(bin)
'qiushuiwuhen (2002-8-12)
dim ret
ret = 0
for i = lenb(bin) to 1 step -1
ret = ret *256 + ascb(midb(bin,i,1))
next
BinVal=ret
End Function
Private Function BinVal2(bin)
'qiushuiwuhen (2002-8-12)
dim ret
ret = 0
for i = 1 to lenb(bin)
ret = ret *256 + ascb(midb(bin,i,1))
next
BinVal2=ret
End Function
Function getImageSize(sj)
dim ret(3)
aso.write (sj)
bFlag=aso.read(3)
select case hex(binVal(bFlag))
case "4E5089":
aso.read(15)
ret(0)="PNG"
ret(1)=BinVal2(aso.read(2))
aso.read(2)
ret(2)=BinVal2(aso.read(2))
case "464947":
aso.read(3)
ret(0)="GIF"
ret(1)=BinVal(aso.read(2))
ret(2)=BinVal(aso.read(2))
case "535746":
aso.read(5)
binData=aso.Read(1)
sConv=Num2Str(ascb(binData),2 ,8)
nBits=Str2Num(left(sConv,5),2)
sConv=mid(sConv,6)
while(len(sConv)<nBits*4)
binData=aso.Read(1)
sConv=sConv&Num2Str(ascb(binData),2 ,8)
wend
ret(0)="SWF"
ret(1)=int(abs(Str2Num(mid(sConv,1*nBits+1,nBits),2)-Str2Num(mid(sConv,0*nBits+1,nBits),2))/20)
ret(2)=int(abs(Str2Num(mid(sConv,3*nBits+1,nBits),2)-Str2Num(mid(sConv,2*nBits+1,nBits),2))/20)
case "FFD8FF":
do
do: p1=binVal(aso.Read(1)): loop while p1=255 and not aso.EOS
if p1>191 and p1<196 then exit do else aso.read(binval2(aso.Read(2))-2)
do:p1=binVal(aso.Read(1)):loop while p1<255 and not aso.EOS
loop while true
aso.Read(3)
ret(0)="JPG"
ret(2)=binval2(aso.Read(2))
ret(1)=binval2(aso.Read(2))
case else:
if left(Bin2Str(bFlag),2)="BM" then
aso.Read(15)
ret(0)="BMP"
ret(1)=binval(aso.Read(4))
ret(2)=binval(aso.Read(4))
else
ret(0)=""
end if
end select
ret(3)="width=""" & ret(1) &""" height=""" & ret(2) &""""
getimagesize=ret
End Function
End Class
%>
智慧的星球 2003-07-18
  • 打赏
  • 举报
回复
用asp.net 写的,看看吧
< %@ Page Language="C#" ContentType="image/jpeg" % >
< %@ Import namespace="System.Drawing"% >
< html >
< head >
< script language="C#" runat="server" >
void Page_Load(object sender,EventArgs e)
{
Bitmap image=new Bitmap(350,200);
Graphics g=Graphics.FromImage(image);
g.Clear(Color.White);
Rectangle outline=new Rectangle(10,5,300,100);
g.DrawEllipse(new Pen(Color.Black,8.0f),outline);
g.FillPie(new SolidBrush(Color.Red),outline,-20f,120f);
//这些角度的大小可以由数据库中的对比数据计算决定
g.FillPie(new SolidBrush(Color.Yellow),outline,100f,120f);
g.FillPie(new SolidBrush(Color.Blue),outline,220f,100f);
g.FillPie(new SolidBrush(Color.Green),outline,320f,40f);
image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
< /script >
< /head >
< body >
< form runat="server" >

< /form >
< /body >
< /html >
lovelxj 2003-03-03
  • 打赏
  • 举报
回复
在ASP。NET里都有自带这个组件;
如果在客户端 就可以用JAVA写
baisun 2003-03-03
  • 打赏
  • 举报
回复
我想Response.ContentType="image/x-xbitmap"
知道这个
coffee_cn 2003-02-27
  • 打赏
  • 举报
回复
组件安装之后应该有帮助呀,
本程序的官方演示地址:http://www.cnhww.com/diy --------------------------------------------- ASP在线攒机**台使用说明 ASP在线攒机**台是恒伟网络开发的一套方便用户在线模拟攒机的ASP程序,此程序可以让用户在网上,根据自己的喜好,选择计算机的各种硬件配置,然后就把相关配置的具体内容、价格、数量、总价等显示出来,并可随时打印。程序拥有独立的后台支持,管理员可以很方便地对程序的大类、详细产品等进行管理,是计算机类网站、IT数码、硬件装机等网站不可缺少的程序! 程序均经过代码多次优化处理,占用资源少,运行速度快,管理员可以方便地在后台进行管理。 一、后台地址: diy/admin/index.asp 默认管理帐号 admin 密码 cnhww.com 登陆后请修改管理员默认密码。 二、数据库文件位于根目录下的db.asp文件,修改数据库名称请同时修改根目录 下的conn.asp中的db="db1.asp" 一行及admin/common目录下的conn.asp文件中 的db=".././db1.asp" 一行,修改db1.asp文件为你的数据库名称即可 后台管理 二、大类管理:登陆后台选择“攒机类别管理--攒机大类管理”可对计算机配件的各大类别进行管理,包括添加、修改、删除等操作。大类管理中分别有大类名称、大类小图、排序ID选项,其中大类小图可为空。   “分类排序”功能可以对大类在前台的显示顺序进行排列,直接更改数字即可,数字小的在前排列,   注:删除大类操作将同时删除此大类下的所有商品! 三、小类管理:添加小类前首先要选择商品大类。选择大类后会显示出此大类下的所有配置列表,可以在下面对此列表进行添加、修改、删除等操作。小类中包括配置的名称、价格、排序等。同时前台显示的的顺序也是在此进行排列的 四、系统管理 可以添加新的管理员帐号。可以对原有帐号进行修改、删除操作   管理员帐号在数据库中是经过MD5加密的。请保管好自己的帐号信息。 五、程序配有恢复管理员默认帐号和密码工具,管理员如果忘记后台管理帐号,此工具可以帮你恢复为默认的帐号及口令,以备急用。 六、更多内容敬请关注官方网站: www.cnhww.com 业务电话 技术支持: 81447932

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧