你的位置:HBcms宏博内容管理系统 建站经验 正文
内容搜索
热门内容
  1. 网站logo在线设计,免..
  2. 域名解析文件hosts文件..
  3. 教你如何做网线接头:..
  4. qq怎么截图?如何在qq..
  5. 雅虎yahoo邮箱smtp和p..
  6. 新注册126邮箱或163邮..
  7. 幻灯片式的网页图片滚..
  8. 做网站怎么赚钱?什么..
  9. com域名和cn域名net域..
  10. Google支付系统(Googl..
推荐内容
  1. 做一个商业网站要多少..
  2. 国外服务器租用(国外..
  3. 深圳做网站的公司!=深..
  4. 网络原创投稿,转载精..
  5. 美国服务器租赁Window..
  6. 699元的美国服务器出租..
  7. 添加友情链接,速度别..
  8. “原始人”卷款潜逃事..
  9. 设置Godaddy支持zend ..
  10. 网页设计中常用的CSS命..
用AspJpeg组件,按宽高比例,真正生成缩略图
  • 原作者:purefei 添加时间:2007-09-27 发表时间:2007-09-27 人气:325
  • 在网站前台产品展示时,一般用缩略图,点击进入然后看到大图。
    缩略图带来了两个烦劳:
    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

    %>

  • 点这里复制本页地址发送给您QQ/MSN上的好友
  • 相关文章
  • 相关评论
  • 本文章所属分类:首页 建站经验