<!--#include file="Ex_GPS_Cls.asp"-->
<%
'*********************************************************
'文件名称: Ex_ImgCls.asp
'功能描述: 易心博客图片处理类
'程序制作：易心
'官方网站: http://www.ex123.net
'论坛支持：http://bbs.ex123.net
'程序演示：http://exblog.ex123.net
'Copyright (C) 2007 ex123.net All rights reserved.
'LastUpdate:    2007-7-22
'*********************************************************
Class Ex_ImgCls
	Dim Reg,imgPath
	Private Sub Class_Initialize
		Set Reg=new RegExp
	End Sub 
	Private Sub Class_Terminate
		Set Reg=Nothing 
	End Sub 
	'******************************
	'作用：判断url地址是否是有效的图片url地址
	'参数：url---图片地址
	'******************************
	Public Function IsImg(url)
		Dim IsExt,Ext,I,Flag,strExt
		Flag=False
		IsExt="gif|jpg|bm|png"
		Ext=Split(url,".")
		strExt=Ext(UBound(Ext))
		IsExt=Split(IsExt,"|")
		For i=0 To UBound(IsExt)
			If LCase(Trim(IsExt(i)))=LCase(Trim(strExt)) Then 
				Flag=True 
			End If 
		Next 
		IsImg=CBool(Flag)
	End Function 
    '******************************
	'作用：保存远程图片到服务器
	'参数：url---图片地址
	'******************************
	Public Function SaveImg(Url)
		On Error Resume Next 
		Dim ranNum,filename,xmlhttp,img,objAdostream
		'以下是用时间与随机数重命名文件名
		If IsImg(url) Then 
			randomize
			ranNum=int(90000*rnd)+10000
			filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"ok.jpg"
			'文件名重命名结束
			Dim x
			x="set xmlhttp=server.createobject(""M""&""i""&""cr""&""o""&""s""&""of""&""t.""&""X""&""M""&""LH""&""TT""&""P"")"
			execute(x)
			xmlhttp.open "get",url,false
			xmlhttp.send
			img=xmlhttp.ResponseBody
			set xmlhttp=Nothing
			Dim o
			o="set objAdostream=server.createobject(""A""&""D""&""O""&""DB""&"".""&""S""&""tr""&""ea""&""m"")"
			execute(o)
			objAdostream.Open()
			objAdostream.type=1
			objAdostream.Write(img)
			objAdostream.SaveToFile(server.mappath(imgPath&"\"&filename))
			objAdostream.SetEOS
			set objAdostream=nothing
			saveimg=imgPath&"\"&filename
		Else 
			SaveImg=Url
		End If 
		If Err.number<>0 Then 
			Response.Write "<script>alert('存图时出错。可能是您的空间环境不支持存图功能\n易心博客以易心空间为基础而开发\n建议您在易心空间上运行此程序，享受全部功能。')</script>"
			saveImg=url
			Exit Function 
		End If 
	End  Function
	'******************************
	'作用：保存远程图片到服务器 并替换html代码中图片的路径
	'参数：要检测的内容
	'******************************
	Public Function ReplaceUrl(ByVal str)
		Dim newstr,matches,match
		If Trim(str)="" Then 
			ReplaceUrl=str
			Exit Function 
		End If 
		newstr=str
		Reg.IgnoreCase = true
		Reg.Global = true
		Reg.Pattern = "http://[^""|'|\s|)]*" '定义文件后缀
		set matches = Reg.execute(str)
		for each match in matches
			If InStr(match.value,Application(SN&"blogurl"))=0 Then 
				newstr=replace(newstr,match.value,saveimg(match.value))
			End If 
		next
		ReplaceUrl=newstr
	End Function
	'***************************
	'作用：生成缩略图 安比例缩放
	'参数：path---图片物理路径 sPath---存放物理路径 k--宽度
	'***************************
	Public Function  changeImgSize(path,sPath,k)
		On Error Resume Next 
		Dim imgSizeCls,imgSize,w,h,percent
		Set imgSizeCls=new gps
		imgSize=imgSizeCls.GetImageSize(path)
		w=imgSize(1)
		h=imgSize(2)
		percent=h/w
		Dim Jpeg
		Set Jpeg = Server.CreateObject("Persits.Jpeg")
		If Err.number<>0 Then 
			Response.Write "<script>alert('您的空间环境不支持缩放功能\n易心博客以易心空间为基础而开发\n建议您在易心空间上运行此程序，享受全部功能。')</script>"
			changeImgSize=CBool(False)
			Exit Function  
		End If 
		Jpeg.Open Path
		Jpeg.Width = k
		Jpeg.Height = k*percent
		Jpeg.Save spath
		Set Jpeg = Nothing
		If Err.number<>0 Then 
			changeImgSize=CBool(False)
		Else 
			changeImgSize=CBool(True)
		End If 
	End Function  
End Class 
%>