При отображении продуктов в передней части веб-сайта обычно используются миниатюры. Нажмите, чтобы войти, а затем просмотрите большое изображение.
Миниатюры приносят две проблемы:
1. Если на фон передается только одно большое изображение, то ширина и высота большого изображения будут фиксироваться только при отображении миниатюры. Это не только приведет к деформации миниатюры, но и замедлит скорость доступа к странице.
2. Если фон каждый раз загружает две картинки, одну большую картинку и одну миниатюру. В этом случае в 1 проблем нет, но это доставит много хлопот бэкенд-персоналу. Поскольку обслуживающий персонал не обязательно знает, как обрабатывать и создавать миниатюры, даже если они знают и могут это быстро обработать, некоторое время теряется;
Следующий код может помочь вам использовать компонент AspJpeg для создания миниатюр в соответствии с соотношением ширины и высоты.
Загрузка компонента AspJpeg: http://www.aspjpeg.com/download.html.
Использование компонента AspJpeg: http://www.mydw.cn/tech/1/766.html.
Регистрационный код: 48958-77556-02411.
<%
Тусклый исходный путь
sOriginalPath = "images/1.gif"
'Исходный путь к изображению обычно получается после загрузки или
Dim получается из базы данных sReturnInfo, sSmallPath 'Функция возвращает информацию, путь к миниатюре
sReturnInfo = BuildSmallPic(sOriginalPath, "images", 100, 100)
Response.Write "Возвращаемая информация:" & sReturnInfo & "<br/>"
Если InStr(sReturnInfo, «Error_») <= 0 Тогда
sSmallPath = sReturnInfo 'Возвратная информация
'Записываем sSmallPath в базу данных
'
Еще
Ответ. Напишите «Подробная ошибка:»
Выберите случай sReturnInfo
Случай «Ошибка_01»
Response.Write «<font color='red'>Не удалось создать компонент AspJpeg, компонент не был правильно установлен и зарегистрирован</font>» & «<br/>»
Случай «Ошибка_02»
Response.Write "<font color='red'>Исходное изображение не существует, проверьте значение, переданное в параметре s_OriginalPath</font>" & "<br/>"
Случай «Ошибка_03»
Response.Write "<font color='red'>Не удалось сохранить миниатюру. Возможные причины: базовый адрес для сохранения миниатюры не существует, проверьте значение, переданное в параметре s_OriginalPath; нет разрешения на запись в каталог; недостаточно места на диске< /шрифт>" и "<br/>"
Случай «Ошибка_Другое»
Ответ. Напишите «<font color='red'>Неизвестная ошибка</font>» и «<br/>»
Конец выбора
Ответ.Конец
Конец, если
%>
Исходное имя файла: <%=sOriginalPath%><br/>
Имя файла миниатюр: <%=sSmallPath%><br/>
Исходное изображение: <img src='<%=sOriginalPath%>' border=0><br/><br/>
Миниатюра: <img src='<%=sSmallPath%>' border=0>
<%
'============================================== = ===============
'Автор: 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».
' Ошибка_01: Не удалось создать компонент AspJpeg, компонент не был правильно установлен и зарегистрирован.
' Ошибка_02: исходное изображение не существует, проверьте значение, переданное в параметре s_OriginalPath.
' Ошибка_03: Не удалось сохранить миниатюру. Возможные причины: Базовый адрес сохранения миниатюр не существует, проверьте значение, переданное в параметре s_OriginalPath, нет разрешения на запись в каталог;
'Error_Other: неизвестная ошибка
'Пример вызова:
'Dim sSmallPath 'Путь к миниатюре
' sSmallPath = BuildSmallPic("images/image1.gif", "images", 100, 100)
'============================================== = ===============
Функция BuildSmallPic(s_OriginalPath, s_BuildBasePath, n_MaxWidth, n_MaxHeight)
Ошиб.Очистить
При ошибке Возобновить Далее
'Проверяем, зарегистрирован ли компонент
ДимАспДжпег
Установите AspJpeg = Server.Createobject("Persits.Jpeg")
Если Номер ошибки <> 0 Тогда
Ошиб.Очистить
BuildSmallPic = "Ошибка_01"
Выход из функции
End If
'Проверьте, существует ли исходное изображение
Dims_MapOriginalPath
s_MapOriginalPath = Server.MapPath(s_OriginalPath)
AspJpeg.Open s_MapOriginalPath 'Открываем исходное изображение
Если Номер ошибки <> 0 Тогда
Ошиб.Очистить
BuildSmallPic = "Ошибка_02"
Выход из функции
End If
'Получить ширину и высоту миниатюры пропорционально
Dim n_OriginalWidth, n_OriginalHeight 'Ширина и высота исходного изображения
Dim n_BuildWidth, n_BuildHeight 'Ширина и высота миниатюры
Тусклый div1, div2
Размер n1, n2
n_OriginalWidth = AspJpeg.Width
n_OriginalHeight = AspJpeg.Height
div1 = n_OriginalWidth/n_OriginalHeight
div2 = n_OriginalHeight/n_OriginalWidth
п1 = 0
п2 = 0
Если n_OriginalWidth > n_MaxWidth Тогда
n1 = n_OriginalWidth / n_MaxWidth
Еще
n_BuildWidth = n_OriginalWidth
Конец, если
Если n_OriginalHeight > n_MaxHeight Тогда
n2 = n_OriginalHeight/n_MaxHeight
Еще
n_BuildHeight = n_OriginalHeight
Конец, если
Если n1 <> 0 или n2 <> 0 Тогда
Если n1 > n2 Тогда
n_BuildWidth = n_MaxWidth
n_BuildHeight = n_MaxWidth * div2
Еще
n_BuildWidth = n_MaxHeight * div1
n_BuildHeight = n_MaxHeight
Конец, если
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».
Если Right(s_BuildBasePath, 1) <> "/" Тогда s_BuildBasePath = s_BuildBasePath & "/"
s_MapBuildBasePath = Server.MapPath(s_BuildBasePath)
s_EndFlag = "_small" 'Можно настроить, если можно различить размер изображения
s_BuildFileName = Заменить(s_OriginalFileName, s_OriginalFileExt, "") & s_EndFlag & s_OriginalFileExt
s_MapBuildPath = s_MapBuildBasePath & "" & s_BuildFileName
AspJpeg.Save s_MapBuildPath 'Сохранить
Если Номер ошибки <> 0 Тогда
Ошиб.Очистить
BuildSmallPic = "Ошибка_03"
Выход из функции
Конец, если
'--Сохранить миниатюру на диск--
'Выйти из экземпляра
Установить AspJpeg = Ничего
Если Номер ошибки <> 0 Тогда
BuildSmallPic = "Error_Other"
Ошиб.Очистить
Конец, если
BuildSmallPic = s_BuildBasePath и s_BuildFileName
Конечная функция
%>