余志国网站设计工作室是专业从事义乌网站建设、义乌外贸网站建设、义乌网站制作、义乌网站设计的专业义乌网站建设工作室,是义乌外贸网站建设专家!

使用Aspjpeg组件,自动按宽高比例生成产品缩略图ASP代码

分类:程序开发 Tags: aspjpeg 组件 图片 缩略图 评论:0 浏览:4436 最近更新时间:2009/8/25 11:31:36

在做网站产品展示页面时,一般会用到缩略图,好处当然是直观醒目让人一目了然,打开产品列表也速度快。点击进入然后看到大图及具体的介绍。

很多网站都是采用下面这2种来达到缩略图效果,但这不是最好的选择。
1,如果后台只传一张大图,显示缩略图时只是将大图固定宽度和高度,这样不但造成缩略图变形,而且使得页面访问速度缓慢。
2,如果后台每次上传时,都上传两张图片,一张大图,一张缩略图。这样的话,没有1中的问题,但是给后台人员造成很大麻烦。因为后台人员并不一定知道处理生成缩略图;即使知道并能快速处理,也浪费掉一些时间。

有没有更好的办法呢?当然有,本站就收集了使用AspJpeg组件来自动按宽高比例生成缩略图的方法,只要添加一个大图就可以了,而且图片不变形,方便快捷,当然前提服务器要安装有这个组件。

下面的代码可以帮您用AspJpeg组件,按宽高比例,真正生成缩略图,打开速度快而且不变形:
AspJpeg组件官方下载:http://www.aspjpeg.com/download.html
本站下载地址:http://www.yuzhiguo.com/pic/file1/AspJpegv1.5.0.0.rar
演示地址:http://www.yuzhiguo.com/website/zhiguolight_v2.0/product.asp
 
  1. <% 
  2. Dim sOriginalPath 
  3. sOriginalPath = "images/1.gif" 
  4. ’原图片路径一般上传完毕后获取,或者从数据库获取 
  5. Dim sReturnInfo, sSmallPath ’函数返回信息, 缩略图路径 
  6. sReturnInfo = BuildSmallPic(sOriginalPath, "images", 100, 100) 
  7. Response.Write "返回信息:" & sReturnInfo & "<br/>" 
  8. If InStr(sReturnInfo, "Error_") <= 0 Then 
  9.     sSmallPath = sReturnInfo ’返回信息就是  
  10.     ’将sSmallPath写入数据库 
  11.     ’ 
  12. Else 
  13.     Response.Write "详细错误:"  
  14.     Select Case sReturnInfo 
  15.     Case "Error_01" 
  16.         Response.Write "<font color=’red’>创建AspJpeg组件失败,没有正确安装注册该组件</font>" & "<br/>" 
  17.     Case "Error_02" 
  18.         Response.Write "<font color=’red’>原图片不存在,检查s_OriginalPath参数传入值</font>" & "<br/>" 
  19.     Case "Error_03"     
  20.         Response.Write "<font color=’red’>缩略图存盘失败.可能原因:缩略图保存基地址不存在,检查s_OriginalPath参数传入值;对目录没有写权限;磁盘空间不足</font>" & "<br/>" 
  21.     Case "Error_Other" 
  22.         Response.Write "<font color=’red’>未知错误</font>" & "<br/>" 
  23.     End Select 
  24.     Response.End 
  25. End If 
  26. %>
 
  1. 原文件名:<%=sOriginalPath%><br/> 
  2. 缩略图文件名:<%=sSmallPath%><br/> 
  3. 原图片:<img src=’<%=sOriginalPath%>’ border=0><br/><br/> 
  4. 缩略图:<img src=’<%=sSmallPath%>’ border=0>
 
  1. <% 
  2. ’================================ 
  3. ’Author:laifangsong QQ:25313644 
  4. ’功能:按照指定图片生成缩略图 
  5. ’注意:以下提到的“路径”都是值相对于调用本函数的文件的相对路径 
  6. ’参数: 
  7. ’    s_OriginalPath:        原图片路径 例:images/image1.gif 
  8. ’    s_BuildBasePath:    生成图片的基路径,不论是否以“/”结尾均可 例:images或images/ 
  9. ’    n_MaxWidth:            生成图片最大宽度 
  10. ’                        如果在前台显示的缩略图是 100*100,这里 n_MaxWidth=100,n_MaxHeight=100. 
  11. ’    n_MaxHeight:        生成图片最大高度 
  12. ’返回值: 
  13. ’    返回生成后的缩略图的路径 
  14. ’错误处理: 
  15. ’    如果函数执行过程中出现错误,将返回错误代码,错误代码以 “Error”开头 
  16. ’        Error_01:创建AspJpeg组件失败,没有正确安装注册该组件 
  17. ’        Error_02:原图片不存在,检查s_OriginalPath参数传入值 
  18. ’        Error_03:缩略图存盘失败.可能原因:缩略图保存基地址不存在,检查s_OriginalPath参数传入值;对目录没有写权限;磁盘空间不足 
  19. ’        Error_Other:未知错误 
  20. ’调用例子: 
  21. ’    Dim sSmallPath ’缩略图路径 
  22. ’    sSmallPath = BuildSmallPic("images/image1.gif""images", 100, 100)     
  23. ’================================================================ 
  24. Function BuildSmallPic(s_OriginalPath, s_BuildBasePath, n_MaxWidth, n_MaxHeight) 
  25.     Err.Clear 
  26.     On Error Resume Next 
  27.      
  28.     ’检查组件是否已经注册 
  29.     Dim AspJpeg 
  30.     Set AspJpeg = Server.Createobject("Persits.Jpeg"
  31.     If Err.Number <> 0 Then 
  32.         Err.Clear 
  33.         BuildSmallPic = "Error_01" 
  34.         Exit Function 
  35.     End If 
  36.     ’检查原图片是否存在 
  37.     Dim s_MapOriginalPath 
  38.     s_MapOriginalPath = Server.MapPath(s_OriginalPath) 
  39.     AspJpeg.Open s_MapOriginalPath ’打开原图片 
  40.     If Err.Number <> 0 Then 
  41.         Err.Clear 
  42.         BuildSmallPic = "Error_02" 
  43.         Exit Function 
  44.     End If 
  45.     ’按比例取得缩略图宽度和高度 
  46.     Dim n_OriginalWidth, n_OriginalHeight ’原图片宽度、高度 
  47.     Dim n_BuildWidth, n_BuildHeight ’缩略图宽度、高度 
  48.     Dim div1, div2 
  49.     Dim n1, n2 
  50.     n_OriginalWidth = AspJpeg.Width 
  51.     n_OriginalHeight = AspJpeg.Height 
  52.     div1 = n_OriginalWidth / n_OriginalHeight 
  53.     div2 = n_OriginalHeight / n_OriginalWidth 
  54.     n1 = 0 
  55.     n2 = 0 
  56.     If n_OriginalWidth > n_MaxWidth Then 
  57.         n1 = n_OriginalWidth / n_MaxWidth 
  58.     Else 
  59.         n_BuildWidth = n_OriginalWidth 
  60.     End If 
  61.     If n_OriginalHeight > n_MaxHeight Then 
  62.         n2 = n_OriginalHeight / n_MaxHeight 
  63.     Else 
  64.         n_BuildHeight = n_OriginalHeight 
  65.     End If 
  66.     If n1 <> 0 Or n2 <> 0 Then 
  67.         If n1 > n2 Then 
  68.             n_BuildWidth = n_MaxWidth 
  69.             n_BuildHeight = n_MaxWidth * div2 
  70.         Else 
  71.             n_BuildWidth = n_MaxHeight * div1 
  72.             n_BuildHeight = n_MaxHeight 
  73.         End If 
  74.     End If 
  75.     ’指定宽度和高度生成 
  76.     AspJpeg.Width = n_BuildWidth 
  77.     AspJpeg.Height = n_BuildHeight 
  78.      
  79.     ’--将缩略图存盘开始-- 
  80.     Dim pos, s_OriginalFileName, s_OriginalFileExt ’位置、原文件名、原文件扩展名 
  81.     pos = InStrRev(s_OriginalPath, "/") + 1 
  82.     s_OriginalFileName = Mid(s_OriginalPath, pos) 
  83.     pos = InStrRev(s_OriginalFileName, "."
  84.     s_OriginalFileExt = Mid(s_OriginalFileName, pos) 
  85.     Dim s_MapBuildBasePath, s_MapBuildPath, s_BuildFileName ’缩略图绝对路径、缩略图文件名 
  86.     Dim s_EndFlag ’小图片文件名结尾标识 例: 如果大图片文件名是“image1.gif”,结尾标识是“_small”,那么小图片文件名就是“image1_small.gif” 
  87.     If Right(s_BuildBasePath, 1) <> "/" Then s_BuildBasePath = s_BuildBasePath & "/" 
  88.     s_MapBuildBasePath = Server.MapPath(s_BuildBasePath) 
  89.     s_EndFlag = "_small" ’可以自定义,只要能区别大小图片即可 
  90.     s_BuildFileName = Replace(s_OriginalFileName, s_OriginalFileExt, "") & s_EndFlag & s_OriginalFileExt 
  91.     s_MapBuildPath = s_MapBuildBasePath & "\" & s_BuildFileName 
  92.      
  93.     AspJpeg.Save s_MapBuildPath ’保存 
  94.     If Err.Number <> 0 Then 
  95.         Err.Clear 
  96.         BuildSmallPic = "Error_03" 
  97.         Exit Function 
  98.     End If 
  99.     ’--将缩略图存盘结束-- 
  100.     ’注销实例 
  101.     Set AspJpeg = Nothing 
  102.     If Err.Number <> 0 Then 
  103.         BuildSmallPic = "Error_Other" 
  104.         Err.Clear 
  105.     End If 
  106.     BuildSmallPic = s_BuildBasePath & s_BuildFileName 
  107. End Function 
  108. %>

本文地址:/443/
  • 相关文章
  • 推荐文章
  • 最新文章
发表评论





您的IP:44.211.84.185,来自:

留言

 


免费咨询
建站咨询热线
15967985565

扫一扫微信咨询
QQ: 358758308 Skype: yuzhiguo Facebook: yuzhiguo Email