用AspJpeg组件按宽高比例真正生成缩略图

2016-02-19 19:30 63 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的用AspJpeg组件按宽高比例真正生成缩略图,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - Web开发 】

  在网站前台产品展示时,一般用缩略图,点击进入然后看到大图。
  缩略图带来了两个烦劳:
  1.如果后台只传一张大图,显示缩略图时只是将大图固定宽度和高度,这样不但造成缩略图变形,而且使得页面访问速度缓慢。
  2.如果后台每次上传时,都上传两张图片,一张大图,一张缩略图。这样的话,没有1中的问题,但是给后台人员造成很大麻烦。因为后台人员并不一定知道处理生成缩略图;即使知道并能快速处理,也浪费掉一些时间。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  下面的代码可以帮您用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=0br/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

  %

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160219/1621157.html

延伸阅读
powerpoint自动缩略图效果详解   您相信实现多张图片都能在一个幻灯片上演示吗,一个幻灯片演示文稿吗? 单击自动缩放效果,单击恢复再一次。方法是: 新演示文稿,单击"插入"菜单中的"对象"命令,选择"Microsoft PowerPoint 演示文稿",在插入的演示演示文稿对象中插入网站的图片,将图片的...
标签: 电脑入门
一、如何使用word缩略图 要想使用word的缩略图,仅需要一步简单的操作即可,如下图一所示。 点击word界面中的菜单视图→缩略图,这样就能使用该功能了。 一旦你使用了该功能,那么,每次打开word都会处于缩略图状态之下,有时候并不需要缩略图功能,因此,可通过再次点击视图→缩略图菜单取消该功能的使用。 二、缩略图的功能 ...
标签: Web开发
这二天想了想决定把自己先前做的项目中的小的功能,整理一下,奉献大家!经大家提议,我决定加上源代码,但是源代码不一定都是我写的,有的来自书上,有的来自网上,有的来自开源项目,与我自己的代码有不相符的,那就是先前的例子! 源代码: smallImg.rar 以下是上传一张800*1000的,分别生成不同缩略图 命名空间: ...
如何重建win7缩略图缓存   1.打开开始菜单在搜索所有程序和文件框里输入磁盘清理,点击打开磁盘清理。如下图所示 2.点击确定,进入磁盘清理属性页面。如下图所示 3.等到磁盘清理计算win7(C)上可以释放多少空间。如下图所示 4.勾选缩略图,确认要删除的文件。如下图所示 5.确认要删除文件。如下图所示...
标签: 电脑入门
问:在Windows XP 系统下,使用缩略图的查看方式后,图片文件没有缩略显示出来,请问如何解决? 答:这个问题是由于Windows 图片和传真查看器的DLL没有注册造成的。解决的方法是:运行Regsvr32 shimgvw.dll注册该DLL即可。

经验教程

990

收藏

68
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部