国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用AspJpeg組件,按寬高比例,真正生成縮略圖

2019-11-18 16:54:44
字體:
來源:轉載
供稿:網友

在網站前臺產品展示時,一般用縮略圖,點擊進入然后看到大圖。
縮略圖帶來了兩個煩勞:
1.如果后臺只傳一張大圖,顯示縮略圖時只是將大圖固定寬度和高度,這樣不但造成縮略圖變形,而且使得頁面訪問速度緩慢。
2.如果后臺每次上傳時,都上傳兩張圖片,一張大圖,一張縮略圖。這樣的話,沒有1中的問題,但是給后臺人員造成很大麻煩。因為后臺人員并不一定知道處理生成縮略圖;即使知道并能快速處理,也浪費掉一些時間。

下面的代碼可以幫您用aspJpeg組件,按寬高比例,真正生成縮略圖
AspJpeg組件下載:http://www.aspjpeg.com/download.html
AspJpeg組件使用:http://www.mydw.cn/tech/1/766.html
注冊碼:48958-77556-02411

 

<%
Dim sOriginalPath
sOriginalPath = "images/1.gif"
'原圖片路徑一般上傳完畢后獲取,或者從數據庫獲取

Dim sReturnInfo, sSmallPath '函數返回信息, 縮略圖路徑
sReturnInfo = BuildSmallPic(sOriginalPath, "images", 100, 100)

Response.Write "返回信息:" & sReturnInfo & "<br/>"
If InStr(sReturnInfo, "Error_") <= 0 Then
    sSmallPath = sReturnInfo '返回信息就是
    '將sSmallPath寫入數據庫
    '
Else
    Response.Write "詳細錯誤:"
    Select Case sReturnInfo
    Case "Error_01"
        Response.Write "<font color='red'>創建AspJpeg組件失敗,沒有正確安裝注冊該組件</font>" & "<br/>"
    Case "Error_02"
        Response.Write "<font color='red'>原圖片不存在,檢查s_OriginalPath參數傳入值</font>" & "<br/>"
    Case "Error_03"   
        Response.Write "<font color='red'>縮略圖存盤失敗.可能原因:縮略圖保存基地址不存在,檢查s_OriginalPath參數傳入值;對目錄沒有寫權限;磁盤空間不足</font>" & "<br/>"
    Case "Error_Other"
        Response.Write "<font color='red'>未知錯誤</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
'功能:按照指定圖片生成縮略圖
'注意:以下提到的“路徑”都是值相對于調用本函數的文件的相對路徑
'參數:
'    s_OriginalPath:        原圖片路徑 例:images/image1.gif
'    s_BuildBasePath:    生成圖片的基路徑,不論是否以“/”結尾均可 例:images或images/
'    n_MaxWidth:            生成圖片最大寬度
'                        如果在前臺顯示的縮略圖是 100*100,這里 n_MaxWidth=100,n_MaxHeight=100.
'    n_MaxHeight:        生成圖片最大高度
'返回值:
'    返回生成后的縮略圖的路徑
'錯誤處理:
'    如果函數執行過程中出現錯誤,將返回錯誤代碼,錯誤代碼以 “Error”開頭
'        Error_01:創建AspJpeg組件失敗,沒有正確安裝注冊該組件
'        Error_02:原圖片不存在,檢查s_OriginalPath參數傳入值
'        Error_03:縮略圖存盤失敗.可能原因:縮略圖保存基地址不存在,檢查s_OriginalPath參數傳入值;對目錄沒有寫權限;磁盤空間不足
'        Error_Other:未知錯誤
'調用例子:
'    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
   
    '檢查組件是否已經注冊
    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 '位置、原文件名、原文件擴展名
    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 '縮略圖絕對路徑、縮略圖文件名
    Dim s_EndFlag '小圖片文件名結尾標識 例: 如果大圖片文件名是“image1.gif”,結尾標識是“_small”,那么小圖片文件名就是“image1_small.gif”
    If Right(s_BuildBasePath, 1) <> "/" Then s_BuildBasePath = s_BuildBasePath & "/"
    s_MapBuildBasePath = Server.MapPath(s_BuildBasePath)
    s_EndFlag = "_small" '可以自定義,只要能區別大小圖片即可
    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
    '--將縮略圖存盤結束--

    '注銷實例
    Set AspJpeg = Nothing
    If Err.Number <> 0 Then
        BuildSmallPic = "Error_Other"
        Err.Clear
    End If
    BuildSmallPic = s_BuildBasePath & s_BuildFileName
End Function

%>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永靖县| 磐安县| 措美县| 峡江县| 文成县| 兴宁市| 马山县| 黄大仙区| 新疆| 同仁县| 莲花县| 革吉县| 宁武县| 和静县| 佛坪县| 榆社县| 三门县| 浮山县| 河北省| 清徐县| 方城县| 越西县| 淮安市| 岳普湖县| 将乐县| 喜德县| 南江县| 高邮市| 淳化县| 宜章县| 吴堡县| 澄江县| 安龙县| 库伦旗| 孙吴县| 布尔津县| 陆川县| 白城市| 滦南县| 伊春市| 新密市|