图片自动保存到本地并利用aspjpeg为图片加水印

  <%

  '函数功能:远程图片自动保存到本地服务器,并利用aspjpeg为图片加上水印

  '(注意:请先在目录下创建images目录,用来保存临时图片)

  '本程序需要在服务器上安装"aspjpeg组件"否则无法正常使用

  '也可以只取'''''22222222'''''''以上的部分,这部分可以保存图片,第二部分是进行水印增加

  '使用方法,请保存为saveimg.asp

  'saveimg.asp?url=http://siyizhu.com/logo.gif 即可以取下图片啦,HOHO. 其他需要加的功能,大家自己扩展好啦

  '如何获取其他后缀名的文件呢? 当然也可以啦

  '(jpg|gif|png|bmp)改成(mp3)明白吧? 就是取mp3后缀的文件名.以此类推. 嘻嘻

  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, "siyizhu.com" '水印离左边的距离,离顶端的距离,这个是放在右下脚了

  '保存文件

  Jpeg.Save Server.MapPath(saveimg) '保存添加水印后的图片

  ' 注销对象

  Set Jpeg = Nothing

  end function

  %>

  注意你的服务器组件支持哦.