位置:海鸟网 > IT > ASP.NET >

远程图片保存到本地,并利用aspjpeg加水印

<%
'函数功能:远程图片自动保存到本地服务器,并利用aspjpeg为图片加上水印
'(注意:请先在目录下创建images目录,用来保存临时图片)
'程序落伍者:我是星星
'加入落伍第二份原创程序,HOHO,今天一定要落伍类,5.6日注册,5.7日落伍,庆祝一下!
'本程序需要在服务器上安装"aspjpeg组件"否则无法正常使用
'也可以只取'''''22222222'''''''以上的部分,这部分可以保存图片,第二部分是进行水印增加
'使用方法,请保存为saveimg.asp
'saveimg.asp?url=http://image2.sina.com.cn/home/images/sina_logo2.gif  即可以取下图片啦,HOHO. 其他需要加的功能,大家自己扩展好啦
'如何获取其他后缀名的文件呢? 当然也可以啦
'(jpg|gif|png|bmp)改成(mp3)明白吧? 就是取mp3后缀的文件名.以此类推. 嘻嘻
'俺要落伍. 发了二份原创,一份是惊云下载系统偷天空时防止出现连接来自天空软件站的程序,有需要的在落伍里面搜索我的贴子
'不要忘了使用时在目录下建images的保存目录哦

Server.ScriptTimeOut=99999

const savepath="images" '图片保存路径
url=request("url")



function myreplace(str)
newstr=str
set objregEx = new RegExp
objregEx.IgnoreCase = true
objregEx.Global = true
objregEx.Pattern = "http://(.+?)\.(jpg|gif|png|bmp)" '定义文件后缀
set matches = objregEx.execute(str)
for each match in matches
newstr=replace(newstr,match.value,saveimg(match.value))
next
myreplace=newstr
end function

function saveimg(url)
temp=split(url,".")
'以下是用时间与随机数重命名文件名
randomize
ranNum=int(90000*rnd)+10000
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&temp(ubound(temp))
'文件名重命名结束
set xmlhttp=server.createobject("Microsoft.XMLHTTP")
xmlhttp.open "get",url,false
xmlhttp.send
img=xmlhttp.ResponseBody
set xmlhttp=nothing
set objAdostream=server.createobject("ADODB.Stream")
objAdostream.Open()
objAdostream.type=1
objAdostream.Write(img)
objAdostream.SaveToFile(server.mappath(savepath&filename))
objAdostream.SetEOS
set objAdostream=nothing
'''''''222222222'''''''''''
saveimg=savepath&filename '获取保存路径
Dim Jpeg
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open Server.MapPath(saveimg) '打开保存图片的路径

' 添加文字水印
Jpeg.Canvas.Font.Color = &HFF0000' 红色
Jpeg.Canvas.Font.Family = "宋体"
Jpeg.Canvas.Font.Bold = True  
Jpeg.Canvas.Print Jpeg.OriginalWidth-200,Jpeg.OriginalHeight-50, "www.sina.com"  '水印离左边的距离,离顶端的距离,这个是放在右下脚了
'保存文件
Jpeg.Save Server.MapPath(saveimg) '保存添加水印后的图片

' 注销对象
Set Jpeg = Nothing
end function
%>