📄 art_cls.asp
字号:
<%
Dim ArtThumb
Set ArtThumb=New Thumb
Public Function IsObjInstalled(strClassString)
On Error Resume Next
IsObjInstalled = False
Err = 0
Dim xTestObj:Set xTestObj = Server.CreateObject(strClassString)
If 0 = Err Then IsObjInstalled = True
Set xTestObj = Nothing
Err = 0
End Function
Public Function IsExpired(strClassString)
On Error Resume Next
IsExpired = True
Err = 0
Dim xTestObj:Set xTestObj = Server.CreateObject(strClassString)
If 0 = Err Then
Select Case strClassString
Case "Persits.Jpeg"
If xTestObjResponse.Expires > Now Then
IsExpired = False
End If
Case "wsImage.Resize"
If InStr(xTestObj.errorinfo, "已经过期") = 0 Then
IsExpired = False
End If
Case "SoftArtisans.ImageGen"
xTestObj.CreateImage 500, 500, RGB(255, 255, 255)
If Err = 0 Then
IsExpired = False
End If
End Select
End If
Set xTestObj = Nothing
Err = 0
End Function
'SK采集通用添加水印及生成缩略图类
'-----------------------------------------------------------------------------------------------
Class Thumb
'为图片添加水印
Function AddWaterMark(FileName)
Dim strMarkSettingSql, MarkSettingRs, objFileSystem, strFileExtName, objImage
If InStr(FileName, ":") = 0 Then
FileName = Server.MapPath(FileName)
End If
If FileName <> "" And Not IsNull(FileName) Then
strFileExtName = ""
If InStr(FileName, ".") <> 0 Then
strFileExtName = LCase(Trim(Mid(FileName, InStrRev(FileName, ".") + 1)))
End If
If strFileExtName <> "jpg" And strFileExtName <> "gif" And strFileExtName <> "bmp" And strFileExtName <> "png" Then
Exit Function
End If
Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")
If objFileSystem.FileExists(FileName) Then
strMarkSettingSql = "select * from Config"
Set MarkSettingRs = conn.Execute(strMarkSettingSql)
If MarkSettingRs("MarkComponent") <> "0" Then
Select Case MarkSettingRs("MarkComponent")
Case "1"
If IsObjInstalled("Persits.Jpeg") Then
If IsExpired("Persits.Jpeg") Then
Response.Write ("对不起,Persits.Jpeg组件已过期!")
Response.End
End If
If MarkSettingRs("MarkType") = "1" Then
AddWordMark 1, MarkSettingRs("MarkText"), MarkSettingRs("MarkFontColor"), MarkSettingRs("MarkFontName"), MarkSettingRs("MarkFontBond"), MarkSettingRs("MarkFontSize"), MarkSettingRs("MarkPosition"), FileName
Else
AddPhotoMark 1, MarkSettingRs("MarkWidth"), MarkSettingRs("MarkHeight"), MarkSettingRs("MarkPicture"), MarkSettingRs("MarkOpacity"), MarkSettingRs("MarkTranspColor"), MarkSettingRs("MarkPosition"), FileName
End If
End If
Case "2"
If strFileExtName = "png" Then
Exit Function
End If
If IsObjInstalled("wsImage.Resize") Then
If IsExpired("wsImage.Resize") Then
Response.Write ("对不起,sImage.Resize组件已过期!")
Response.End
End If
If MarkSettingRs("MarkType") = "1" Then
AddWordMark 2, MarkSettingRs("MarkText"), MarkSettingRs("MarkFontColor"), MarkSettingRs("MarkFontName"), MarkSettingRs("MarkFontBond"), MarkSettingRs("MarkFontSize"), MarkSettingRs("MarkPosition"), FileName
Else
AddPhotoMark 2, MarkSettingRs("MarkWidth"), MarkSettingRs("MarkHeight"), MarkSettingRs("MarkPicture"), MarkSettingRs("MarkOpacity"), MarkSettingRs("MarkTranspColor"), MarkSettingRs("MarkPosition"), FileName
End If
End If
Case "3"
If IsObjInstalled("SoftArtisans.ImageGen") Then
If IsExpired("SoftArtisans.ImageGen") Then
Response.Write ("对不起,SoftArtisans.ImageGen组件已过期!")
Response.End
End If
If MarkSettingRs("MarkType") = "1" Then
AddWordMark 3, MarkSettingRs("MarkText"), MarkSettingRs("MarkFontColor"), MarkSettingRs("MarkFontName"), MarkSettingRs("MarkFontBond"), MarkSettingRs("MarkFontSize"), MarkSettingRs("MarkPosition"), FileName
Else
AddPhotoMark 3, MarkSettingRs("MarkWidth"), MarkSettingRs("MarkHeight"), MarkSettingRs("MarkPicture"), MarkSettingRs("MarkOpacity"), MarkSettingRs("MarkTranspColor"), MarkSettingRs("MarkPosition"), FileName
End If
End If
End Select
End If
Set MarkSettingRs = Nothing
End If
Set objFileSystem = Nothing
End If
End Function
'为图片添加文字水印函数
Function AddWordMark(MarkComponentID, MarkText, MarkFontColor, MarkFontName, MarkFontBond, MarkFontSize, MarkPosition, FileName)
Dim objImage, x, y, Text, TextWidth, FontColor, FontName, FondBond, FontSize, OriginalWidth, OriginalHeight
If InStr(FileName, ":") = 0 Then
FileName = Server.MapPath(FileName)
End If
Text = Trim(MarkText)
If Text = "" Then
Exit Function
End If
FontColor = Replace(MarkFontColor, "#", "&H")
FontName = MarkFontName
If MarkFontBond = "1" Then
FondBond = True
Else
FondBond = False
End If
FontSize = CInt(MarkFontSize)
Select Case MarkComponentID
Case 1
If Not IsObjInstalled("Persits.Jpeg") Then
Exit Function
End If
Set objImage = Server.CreateObject("Persits.Jpeg")
objImage.Open FileName
objImage.Canvas.Font.Color = FontColor
objImage.Canvas.Font.Family = FontName
objImage.Canvas.Font.Bold = FondBond
objImage.Canvas.Font.size = FontSize
TextWidth = objImage.Canvas.GetTextExtent(Text)
If objImage.OriginalWidth < TextWidth Or objImage.OriginalHeight < FontSize Then
Exit Function
End If
GetPostion CInt(MarkPosition), x, y, objImage.OriginalWidth, objImage.OriginalHeight, TextWidth, FontSize
With objImage.Canvas
.Print x, y, Text
End With
objImage.Save FileName
Case 2
If Not IsObjInstalled("wsImage.Resize") Then
Exit Function
End If
Set objImage = Server.CreateObject("wsImage.Resize")
objImage.LoadSoucePic CStr(FileName)
objImage.TxtMarkFont = CStr(FontName)
objImage.TxtMarkBond = FondBond
objImage.TxtMarkHeight = FontSize
FontColor = "&H" & Mid(FontColor, 7) & Mid(FontColor, 5, 2) & Mid(FontColor, 3, 2)
objImage.AddTxtMark CStr(FileName), CStr(Text), CLng(FontColor), 1, 1
Case 3
If Not IsObjInstalled("SoftArtisans.ImageGen") Then
Exit Function
End If
Set objImage = Server.CreateObject("SoftArtisans.ImageGen")
objImage.LoadImage FileName
objImage.Font.Height = FontSize
objImage.Font.name = FontName
FontColor = "&H" & Mid(FontColor, 7) & Mid(FontColor, 5, 2) & Mid(FontColor, 3, 2)
objImage.Font.Color = CLng(FontColor)
objImage.Text = Text
GetPostion CInt(MarkPosition), x, y, objImage.Width, objImage.Height, objImage.TextWidth, objImage.TextHeight
objImage.DrawTextOnImage x, y, objImage.TextWidth, objImage.TextHeight
objImage.SaveImage 0, objImage.ImageFormat, FileName
End Select
Set objImage = Nothing
End Function
Function AddPhotoMark(MarkComponentID, MarkWidth, MarkHeight, MarkPicture, MarkOpacity, MarkTranspColor, MarkPosition, FileName)
Dim objImage, objMark, x, y, OriginalWidth, OriginalHeight, Position
If InStr(FileName, ":") = 0 Then
FileName = Server.MapPath(FileName)
End If
If IsNull(MarkWidth) Or MarkWidth = "" Then
MarkWidth = 0
Else
MarkWidth = CInt(MarkWidth)
End If
If IsNull(MarkHeight) Or MarkHeight = "" Then
MarkHeight = 0
Else
MarkHeight = CInt(MarkHeight)
End If
If Trim(MarkPicture) = "" Or IsNull(MarkPicture) Then
Exit Function
End If
If IsNull(MarkOpacity) Or MarkOpacity = "" Then
MarkOpacity = 1
Else
MarkOpacity = CSng(MarkOpacity)
End If
If MarkTranspColor <> " " Then
MarkTranspColor = Replace(MarkTranspColor, "#", "&H")
Else
'
End If
Select Case MarkComponentID
Case 1
If Not IsObjInstalled("Persits.Jpeg") Then
Exit Function
End If
Set objImage = Server.CreateObject("Persits.Jpeg")
Set objMark = Server.CreateObject("Persits.Jpeg")
objImage.Open FileName
If objImage.OriginalWidth < MarkWidth Or objImage.OriginalHeight < MarkHeight Then
Exit Function
End If
objMark.Open Server.MapPath(MarkPicture)
GetPostion CInt(MarkPosition), x, y, objImage.OriginalWidth, objImage.OriginalHeight, MarkWidth, MarkHeight
If MarkTranspColor <> " " Then
objImage.DrawImage x, y, objMark, MarkOpacity, MarkTranspColor
Else
objImage.DrawImage x, y, objMark, MarkOpacity
End If
objImage.Save FileName
Case 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -