利用aspjpeg组件自动生成产品缩略图asp源代码
来源:asp之家 发布时间:2007-08-10 10:14:00
标签:aspjpeg,缩略图,asp源代码
在做网站产品展示页面时,一般会用到缩略图,好处当然是直观醒目让人一目了然。点击进入然后看到大图及具体的介绍。
但是缩略图在实现上带来了两个问题:
1.如果后台只传一张大图,显示缩略图时只是将大图固定宽度和高度,这样不但造成缩略图变形,而且使得页面访问速度缓慢。
2.如果后台每次上传时,都上传两张图片,一张大图,一张缩略图。这样的话,没有1中的问题,但是给后台人员造成很 * 烦。因为后台人员并不一定知道处理生成缩略图;即使知道并能快速处理,也浪费掉一些时间。
有没有更好的办法呢?当然有,本站就收集了使用AspJpeg组件来自动生成缩略图的方法,只要添加一个大图就可以了,方便快捷,当然前提服务器要安装有这个组件。
下面的代码可以帮您用AspJpeg组件,按宽高比例,真正生成缩略图
AspJpeg组件下载:http://www.aspjpeg.com/download.html
<%
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
%>
aspjpeg组件的功能很多,不仅可以生成缩略图,还可以给图片加水印等等。
0
投稿
猜你喜欢
- 最近在研究网页的切片算法,很可能很多人不知道什么是切片算法,其实这是一种面向搜索引擎的网页分块、切片的原理,目前随着工作的深入,逐渐碰到了各
- 作业备份,不是备份数据库,是备份作业。 我的方法是把作业导出成文件备份起来,因为当你服务器维护的多了的时候很多你的作业 就很成问题,很麻烦。
- 大家都知道对于一个页面来说,最基本的结构呢就是<html> <head> <!-- 头部信息内容区域
- 不知不觉2008已经走到了尽头,在这近一年中,一直不断的尝试用ExtJS做项目,从1.1到现在的2.2,吃了不少苦头,也有不少收获,总结一
- XML(可扩展标记语言)已成为Web应用中数据表示和数据交换的标准,随着Internet的快速发展,尤其是电子商务,Web服务等应用的广泛使
- 对网站的LOGO设计做了一些归纳,希望得到批评,发现写的太长了,又不忍心删减,就分成两部分了,第一部分是有关设计基础的。第二部分是关于网站L
- dim sql_injdata,SQL_inj,SQL_Get,SQL_Data,Sql_PostSQL_injdata = "&
- 后台数据库: [Microsoft Access] 与 [Microsoft Sql Server] 更换之后,ASP代码应注意要修改的一些
- 在一群里有朋友发问,有时间,也就看看了,不多说了,看图了:用一般的 select .... order 排序出来,就如下图了,是
- 同MongoDB,Redis这样的NoSQL数据库的复制相比,MySQL复制显得相当复杂!概述首先主服务器把数据变化记录到主日志,然后从服务
- 网上找了很多。貌似没什么好的解决办法。自己参考了下。把它直接整成一条SQL语句了。不过字段的格式只允许前面或者后面有字符。中间不允许出现字符
- 流程,通俗来讲,就是许多人,在做一系列的事情时,怎样相互协调,安排好这一系列事情的先后顺序,有什么事先的约定,需要达到怎样的预期目标。在UE
- Q: I am working with Oracle database 8.1.7 and I have written a JAVA c
- Dreamweaver MX 2004新增加了表格宽度辅助线功能,让我们在编辑网页表格的时候能清楚地看到表格中各单元的宽度以及变化,很直观。
- 用下列代码可在控制弹出NTLM验证窗口:<% Response.Status = "401 Unauthorized&quo
- 一个客户提供一个股价的信息,要求放在页面上,显示一些数据,需要从远程获取xml,然后解析写在网页上,开始不会觉得很难,其实蛮简单的,先用ja
- 前两天看的时候,所用的歌曲地址加密方式已变更。将以前的发出来供大家赏玩。解密函数是从flash里面反编译出来的,加密函数是自己根据解密函数写
- 以下的文章主要是介绍SQL Server数据库与其实际应用元数据,我前两天在相关网站看见SQL Server数据库与其实际应用元数据的资料,
- 我们知道,在js中,当object作为参数传递到函数中进行处理后,实际上是修改了传入的对象本身(或者说是对象的引用),但很多时候我们并不希望
- Chrome的CSS支持程度 :Green / √ means current support.Orange / Δ means that