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
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
组件安装之后应该有帮助呀,

28,391

社区成员

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

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