在网站前台产品展示时,一般用缩略图,点击进入然后看到大图。
缩略图带来了两个烦劳:
1.如果后台只传一张大图,显示缩略图时只是将大图固定宽度和高度,这样不但造成缩略图变形,而且使得页面访问速度缓慢。
2.如果后台每次上传时,都上传两张图片,一张大图,一张缩略图。这样的话,没有1中的问题,但是给后台人员造成很大麻烦。因为后台人员并不一定知道处理生成缩略图;即使知道并能快速处理,也浪费掉一些时间。
下面的代码可以帮您用AspJpeg组件,按宽高比例,真正生成缩略图
AspJpeg组件下载:http://www.aspjpeg.com/download.html
AspJpeg组件使用:http://www.mydw.cn/tech/1/766.html
注册码:48958-77556-02411
1
<%
2
Dim sOriginalPath
3
sOriginalPath = "images/1.gif"
4
'原图片路径一般上传完毕后获取,或者从数据库获取
5![](/Images/OutliningIndicators/InBlock.gif)
6
Dim sReturnInfo, sSmallPath '函数返回信息, 缩略图路径
7
sReturnInfo = BuildSmallPic(sOriginalPath, "images", 100, 100)
8![](/Images/OutliningIndicators/InBlock.gif)
9
Response.Write "返回信息:" & sReturnInfo & "<br/>"
10
If InStr(sReturnInfo, "Error_") <= 0 Then
11
sSmallPath = sReturnInfo '返回信息就是
12
'将sSmallPath写入数据库
13
'
14
Else
15
Response.Write "详细错误:"
16
Select Case sReturnInfo
17
Case "Error_01"
18
Response.Write "<font color='red'>创建AspJpeg组件失败,没有正确安装注册该组件</font>" & "<br/>"
19
Case "Error_02"
20
Response.Write "<font color='red'>原图片不存在,检查s_OriginalPath参数传入值</font>" & "<br/>"
21
Case "Error_03"
22
Response.Write "<font color='red'>缩略图存盘失败.可能原因:缩略图保存基地址不存在,检查s_OriginalPath参数传入值;对目录没有写权限;磁盘空间不足</font>" & "<br/>"
23
Case "Error_Other"
24
Response.Write "<font color='red'>未知错误</font>" & "<br/>"
25
End Select
26
Response.End
27
End If
28![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
29
%>
30
原文件名:<%=sOriginalPath%><br/>
31
缩略图文件名:<%=sSmallPath%><br/>
32
原图片:<img src='<%=sOriginalPath%>' border=0><br/><br/>
33
缩略图:<img src='<%=sSmallPath%>' border=0>
34![](/Images/OutliningIndicators/None.gif)
35![](/Images/OutliningIndicators/None.gif)
36
<%
37
'================================
38
'Author:laifangsong QQ:25313644
39
'功能:按照指定图片生成缩略图
40
'注意:以下提到的“路径”都是值相对于调用本函数的文件的相对路径
41
'参数:
42
' s_OriginalPath: 原图片路径 例:images/image1.gif
43
' s_BuildBasePath: 生成图片的基路径,不论是否以“/”结尾均可 例:images或images/
44
' n_MaxWidth: 生成图片最大宽度
45
' 如果在前台显示的缩略图是 100*100,这里 n_MaxWidth=100,n_MaxHeight=100.
46
' n_MaxHeight: 生成图片最大高度
47
'返回值:
48
' 返回生成后的缩略图的路径
49
'错误处理:
50
' 如果函数执行过程中出现错误,将返回错误代码,错误代码以 “Error”开头
51
' Error_01:创建AspJpeg组件失败,没有正确安装注册该组件
52
' Error_02:原图片不存在,检查s_OriginalPath参数传入值
53
' Error_03:缩略图存盘失败.可能原因:缩略图保存基地址不存在,检查s_OriginalPath参数传入值;对目录没有写权限;磁盘空间不足
54
' Error_Other:未知错误
55
'调用例子:
56
' Dim sSmallPath '缩略图路径
57
' sSmallPath = BuildSmallPic("images/image1.gif", "images", 100, 100)
58
'================================================================
59
Function BuildSmallPic(s_OriginalPath, s_BuildBasePath, n_MaxWidth, n_MaxHeight)
60
Err.Clear
61
On Error Resume Next
62
63
'检查组件是否已经注册
64
Dim AspJpeg
65
Set AspJpeg = Server.Createobject("Persits.Jpeg")
66
If Err.Number <> 0 Then
67
Err.Clear
68
BuildSmallPic = "Error_01"
69
Exit Function
70
End If
71![](/Images/OutliningIndicators/InBlock.gif)
72
'检查原图片是否存在
73
Dim s_MapOriginalPath
74
s_MapOriginalPath = Server.MapPath(s_OriginalPath)
75
AspJpeg.Open s_MapOriginalPath '打开原图片
76
If Err.Number <> 0 Then
77
Err.Clear
78
BuildSmallPic = "Error_02"
79
Exit Function
80
End If
81![](/Images/OutliningIndicators/InBlock.gif)
82
'按比例取得缩略图宽度和高度
83
Dim n_OriginalWidth, n_OriginalHeight '原图片宽度、高度
84
Dim n_BuildWidth, n_BuildHeight '缩略图宽度、高度
85
Dim div1, div2
86
Dim n1, n2
87
n_OriginalWidth = AspJpeg.Width
88
n_OriginalHeight = AspJpeg.Height
89
div1 = n_OriginalWidth / n_OriginalHeight
90
div2 = n_OriginalHeight / n_OriginalWidth
91
n1 = 0
92
n2 = 0
93
If n_OriginalWidth > n_MaxWidth Then
94
n1 = n_OriginalWidth / n_MaxWidth
95
Else
96
n_BuildWidth = n_OriginalWidth
97
End If
98
If n_OriginalHeight > n_MaxHeight Then
99
n2 = n_OriginalHeight / n_MaxHeight
100
Else
101
n_BuildHeight = n_OriginalHeight
102
End If
103
If n1 <> 0 Or n2 <> 0 Then
104
If n1 > n2 Then
105
n_BuildWidth = n_MaxWidth
106
n_BuildHeight = n_MaxWidth * div2
107
Else
108
n_BuildWidth = n_MaxHeight * div1
109
n_BuildHeight = n_MaxHeight
110
End If
111
End If
112![](/Images/OutliningIndicators/InBlock.gif)
113
'指定宽度和高度生成
114
AspJpeg.Width = n_BuildWidth
115
AspJpeg.Height = n_BuildHeight
116
117
'--将缩略图存盘开始--
118
Dim pos, s_OriginalFileName, s_OriginalFileExt '位置、原文件名、原文件扩展名
119
pos = InStrRev(s_OriginalPath, "/") + 1
120
s_OriginalFileName = Mid(s_OriginalPath, pos)
121
pos = InStrRev(s_OriginalFileName, ".")
122
s_OriginalFileExt = Mid(s_OriginalFileName, pos)
123![](/Images/OutliningIndicators/InBlock.gif)
124
Dim s_MapBuildBasePath, s_MapBuildPath, s_BuildFileName '缩略图绝对路径、缩略图文件名
125
Dim s_EndFlag '小图片文件名结尾标识 例: 如果大图片文件名是“image1.gif”,结尾标识是“_small”,那么小图片文件名就是“image1_small.gif”
126
If Right(s_BuildBasePath, 1) <> "/" Then s_BuildBasePath = s_BuildBasePath & "/"
127
s_MapBuildBasePath = Server.MapPath(s_BuildBasePath)
128
s_EndFlag = "_small" '可以自定义,只要能区别大小图片即可
129
s_BuildFileName = Replace(s_OriginalFileName, s_OriginalFileExt, "") & s_EndFlag & s_OriginalFileExt
130
s_MapBuildPath = s_MapBuildBasePath & "\" & s_BuildFileName
131
132
AspJpeg.Save s_MapBuildPath '保存
133
If Err.Number <> 0 Then
134
Err.Clear
135
BuildSmallPic = "Error_03"
136
Exit Function
137
End If
138
'--将缩略图存盘结束--
139![](/Images/OutliningIndicators/InBlock.gif)
140
'注销实例
141
Set AspJpeg = Nothing
142
If Err.Number <> 0 Then
143
BuildSmallPic = "Error_Other"
144
Err.Clear
145
End If
146
BuildSmallPic = s_BuildBasePath & s_BuildFileName
147
End Function
148![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
149
%>
150![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/InBlock.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/InBlock.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/InBlock.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/InBlock.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/InBlock.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/InBlock.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/InBlock.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/InBlock.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/InBlock.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/InBlock.gif)
144
![](/Images/OutliningIndicators/InBlock.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
149
![](/Images/OutliningIndicators/None.gif)
150
![](/Images/OutliningIndicators/None.gif)