在網(wǎng)站前臺(tái)產(chǎn)品展示時(shí),一般用縮略圖,點(diǎn)擊進(jìn)入然后看到大圖。
縮略圖帶來(lái)了兩個(gè)煩勞:
1.如果后臺(tái)只傳一張大圖,顯示縮略圖時(shí)只是將大圖固定寬度和高度,這樣不但造成縮略圖變形,而且使得頁(yè)面訪問(wèn)速度緩慢。
2.如果后臺(tái)每次上傳時(shí),都上傳兩張圖片,一張大圖,一張縮略圖。這樣的話,沒(méi)有1中的問(wèn)題,但是給后臺(tái)人員造成很大麻煩。因?yàn)楹笈_(tái)人員并不一定知道處理生成縮略圖;即使知道并能快速處理,也浪費(fèi)掉一些時(shí)間。
下面的代碼可以幫您用AspJpeg組件,按寬高比例,真正生成縮略圖
AspJpeg組件下載:
http://www.aspjpeg.com/download.html
AspJpeg組件使用:
http://www.mydw.cn/tech/1/766.html
<%
Dim sOriginalPath
sOriginalPath = "images/1.gif"
'原圖片路徑一般上傳完畢后獲取,或者從
數(shù)據(jù)庫(kù)
獲取
Dim sReturnInfo, sSmallPath '函數(shù)返回信息, 縮略圖路徑
sReturnInfo = BuildSmallPic(sOriginalPath, "images", 100, 100)
Response.Write "返回信息:" & sReturnInfo & "<br/>"
If InStr(sReturnInfo, "Error_") <= 0 Then
sSmallPath = sReturnInfo '返回信息就是
'將sSmallPath寫入數(shù)據(jù)庫(kù)
'
Else
Response.Write "詳細(xì)錯(cuò)誤:"
Select Case sReturnInfo
Case "Error_01"
Response.Write "<font color='red'>創(chuàng)建AspJpeg組件失敗,沒(méi)有正確安裝注冊(cè)該組件</font>" & "<br/>"
Case "Error_02"
Response.Write "<font color='red'>原圖片不存在,檢查s_OriginalPath參數(shù)傳入值</font>" & "<br/>"
Case "Error_03"
Response.Write "<font color='red'>縮略圖存盤失敗.可能原因:縮略圖保存基地址不存在,檢查s_OriginalPath參數(shù)傳入值;對(duì)目錄沒(méi)有寫權(quán)限;磁盤空間不足</font>" & "<br/>"
Case "Error_Other"
Response.Write "<font color='red'>未知錯(cuò)誤</font>" & "<br/>"
End Select
Response.End
End If
%>
原文件名:<%=sOriginalPath%><br/>
縮略圖文件名:<%=sSmallPath%><br/>
原圖片:<img src='<%=sOriginalPath%>' border=0><br/><br/>
縮略圖:<img src='<%=sSmallPath%>' border=0>
<%
'================================================================
'Author:laifangsong QQ:25313644
'功能:按照指定圖片生成縮略圖
'注意:以下提到的“路徑”都是值相對(duì)于調(diào)用本函數(shù)的文件的相對(duì)路徑
'參數(shù):
' s_OriginalPath: 原圖片路徑 例:images/image1.gif
' s_BuildBasePath: 生成圖片的基路徑,不論是否以“/”結(jié)尾均可 例:images或images/
' n_MaxWidth: 生成圖片最大寬度
' 如果在前臺(tái)顯示的縮略圖是 100*100,這里 n_MaxWidth=100,n_MaxHeight=100.
' n_MaxHeight: 生成圖片最大高度
'返回值:
' 返回生成后的縮略圖的路徑
'錯(cuò)誤處理:
' 如果函數(shù)執(zhí)行過(guò)程中出現(xiàn)錯(cuò)誤,將返回錯(cuò)誤代碼,錯(cuò)誤代碼以 “Error”開頭
' Error_01:創(chuàng)建AspJpeg組件失敗,沒(méi)有正確安裝注冊(cè)該組件
' Error_02:原圖片不存在,檢查s_OriginalPath參數(shù)傳入值
' Error_03:縮略圖存盤失敗.可能原因:縮略圖保存基地址不存在,檢查s_OriginalPath參數(shù)傳入值;對(duì)目錄沒(méi)有寫權(quán)限;磁盤空間不足
' Error_Other:未知錯(cuò)誤
'調(diào)用例子:
' Dim sSmallPath '縮略圖路徑
' sSmallPath = BuildSmallPic("images/image1.gif", "images", 100, 100)
'================================================================
Function BuildSmallPic(s_OriginalPath, s_BuildBasePath, n_MaxWidth, n_MaxHeight)
Err.Clear
On Error Resume Next
'檢查組件是否已經(jīng)注冊(cè)
Dim AspJpeg
Set AspJpeg = Server.Createobject("Persits.Jpeg")
If Err.Number <> 0 Then
Err.Clear
BuildSmallPic = "Error_01"
Exit Function
End If
'檢查原圖片是否存在
Dim s_MapOriginalPath
s_MapOriginalPath = Server.MapPath(s_OriginalPath)
AspJpeg.Open s_MapOriginalPath '打開原圖片
If Err.Number <> 0 Then
Err.Clear
BuildSmallPic = "Error_02"
Exit Function
End If
'按比例取得縮略圖寬度和高度
Dim n_OriginalWidth, n_OriginalHeight '原圖片寬度、高度
Dim n_BuildWidth, n_BuildHeight '縮略圖寬度、高度
Dim div1, div2
Dim n1, n2
n_OriginalWidth = AspJpeg.Width
n_OriginalHeight = AspJpeg.Height
div1 = n_OriginalWidth / n_OriginalHeight
div2 = n_OriginalHeight / n_OriginalWidth
n1 = 0
n2 = 0
If n_OriginalWidth > n_MaxWidth Then
n1 = n_OriginalWidth / n_MaxWidth
Else
n_BuildWidth = n_OriginalWidth
End If
If n_OriginalHeight > n_MaxHeight Then
n2 = n_OriginalHeight / n_MaxHeight
Else
n_BuildHeight = n_OriginalHeight
End If
If n1 <> 0 Or n2 <> 0 Then
If n1 > n2 Then
n_BuildWidth = n_MaxWidth
n_BuildHeight = n_MaxWidth * div2
Else
n_BuildWidth = n_MaxHeight * div1
n_BuildHeight = n_MaxHeight
End If
End If
'指定寬度和高度生成
AspJpeg.Width = n_BuildWidth
AspJpeg.Height = n_BuildHeight
'--將縮略圖存盤開始--
Dim pos, s_OriginalFileName, s_OriginalFileExt '位置、原文件名、原文件擴(kuò)展名
pos = InStrRev(s_OriginalPath, "/") + 1
s_OriginalFileName = Mid(s_OriginalPath, pos)
pos = InStrRev(s_OriginalFileName, ".")
s_OriginalFileExt = Mid(s_OriginalFileName, pos)
Dim s_MapBuildBasePath, s_MapBuildPath, s_BuildFileName '縮略圖絕對(duì)路徑、縮略圖文件名
Dim s_EndFlag '小圖片文件名結(jié)尾標(biāo)識(shí) 例: 如果大圖片文件名是“image1.gif”,結(jié)尾標(biāo)識(shí)是“_small”,那么小圖片文件名就是“image1_small.gif”
If Right(s_BuildBasePath, 1) <> "/" Then s_BuildBasePath = s_BuildBasePath & "/"
s_MapBuildBasePath = Server.MapPath(s_BuildBasePath)
s_EndFlag = "_small" '可以自定義,只要能區(qū)別大小圖片即可
s_BuildFileName = Replace(s_OriginalFileName, s_OriginalFileExt, "") & s_EndFlag & s_OriginalFileExt
s_MapBuildPath = s_MapBuildBasePath & "\" & s_BuildFileName
AspJpeg.Save s_MapBuildPath '保存
If Err.Number <> 0 Then
Err.Clear
BuildSmallPic = "Error_03"
Exit Function
End If
'--將縮略圖存盤結(jié)束--
'注銷實(shí)例
Set AspJpeg = Nothing
If Err.Number <> 0 Then
BuildSmallPic = "Error_Other"
Err.Clear
End If
BuildSmallPic = s_BuildBasePath & s_BuildFileName
End Function
%>
from
![]() |
google_ad_client = "pub-2416224910262877"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_channel = ""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000";
其他文章:
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
