Al mostrar productos en la parte frontal del sitio web, generalmente se utilizan miniaturas. Haga clic para ingresar y luego ver la imagen grande.
Las miniaturas traen dos problemas:
1. Si solo se transmite una imagen grande al fondo, el ancho y el alto de la imagen grande solo se fijarán al mostrar la miniatura. Esto no solo hará que la miniatura se deforme, sino que también reducirá la velocidad de acceso a la página.
2. Si el fondo carga dos imágenes cada vez, una imagen grande y una miniatura. En este caso, no hay ningún problema en 1, pero causará muchos problemas al personal de backend. Debido a que el personal de backend no necesariamente sabe cómo procesar y generar miniaturas, incluso si lo saben y pueden procesarlo rápidamente, se pierde algo de tiempo;
El siguiente código puede ayudarle a utilizar el componente AspJpeg para generar miniaturas de acuerdo con la relación de ancho y alto.
Descarga del componente AspJpeg: http://www.aspjpeg.com/download.html
Uso del componente AspJpeg: http://www.mydw.cn/tech/1/766.html
Código de registro: 48958-77556-02411
<%
Dim sOriginalPath
sOriginalPath = "imágenes/1.gif"
'La ruta de la imagen original generalmente se obtiene después de cargarla, o
Dim se obtiene de la base de datos sReturnInfo, sSmallPath 'La función devuelve información, ruta en miniatura
sReturnInfo = BuildSmallPic(sOriginalPath, "images", 100, 100)
Response.Write "Información de devolución:" & sReturnInfo & "<br/>"
Si InStr(sReturnInfo, "Error_") <= 0 Entonces
sSmallPath = sReturnInfo 'La información de devolución es
'Escribe sSmallPath en la base de datos
'
Demás
Respuesta.Escribir "Error detallado:"
Seleccione Caso sReturnInfo
Caso "Error_01"
Response.Write "<font color='red'>Error al crear el componente AspJpeg, el componente no se instaló ni se registró correctamente</font>" & "<br/>"
Caso "Error_02"
Response.Write "<font color='red'>La imagen original no existe, verifique el valor pasado en el parámetro s_OriginalPath</font>" & "<br/>"
Caso "Error_03"
Response.Write "<font color='red'>Error al guardar la miniatura. Posibles motivos: la dirección base para guardar la miniatura no existe, verifique el valor pasado en el parámetro s_OriginalPath; no hay permiso de escritura en el directorio; espacio en disco insuficiente< /fuente>" & "<br/>"
Caso "Error_Otro"
Response.Write "<font color='red'>Error desconocido</font>" & "<br/>"
Finalizar selección
Respuesta.Fin
Finalizar si
%>
Nombre del archivo original: <%=sOriginalPath%><br/>
Nombre del archivo en miniatura: <%=sSmallPath%><br/>
Imagen original: <img src='<%=sOriginalPath%>' border=0><br/>><br/>
Miniatura: <img src='<%=sSmallPath%>' border=0>
<%
'=================================================== = ================
'Autor:laifangsong QQ:25313644
'Función: Genera miniaturas basadas en imágenes especificadas
'Nota: Las "rutas" mencionadas a continuación son todas rutas relativas al archivo que llama a esta función.
'parámetro:
' s_OriginalPath: Ejemplo de ruta de imagen original: imágenes/imagen1.gif
' s_BuildBasePath: La ruta base para generar imágenes, independientemente de si termina en "/", por ejemplo: imágenes o imágenes/
' n_MaxWidth: Genera el ancho máximo de la imagen
' Si la miniatura que se muestra en primer plano es 100*100, aquí n_MaxWidth=100, n_MaxHeight=100.
' n_MaxHeight: Genera la altura máxima de la imagen
'Valor de retorno:
'Devuelve la ruta de la imagen en miniatura generada
'Manejo de errores:
' Si se produce un error durante la ejecución de la función, se devolverá un código de error. El código de error comienza con "Error".
'Error_01: No se pudo crear el componente AspJpeg, el componente no se instaló ni registró correctamente.
' Error_02: La imagen original no existe, verifique el valor pasado en el parámetro s_OriginalPath
'Error_03: Error al guardar la miniatura. Posibles motivos: la dirección base para guardar la miniatura no existe, verifique el valor pasado en el parámetro s_OriginalPath; no hay permiso de escritura en el directorio;
'Error_Otro: Error desconocido
'Ejemplo de llamada:
'Dim sSmallPath 'Ruta en miniatura
' sSmallPath = BuildSmallPic("imágenes/image1.gif", "imágenes", 100, 100)
'=================================================== = ================
Función BuildSmallPic(s_OriginalPath, s_BuildBasePath, n_MaxWidth, n_MaxHeight)
Err.Borrar
En caso de error Continuar siguiente
'Compruebe si el componente ha sido registrado
DimAspJpeg
Establecer AspJpeg = Server.Createobject("Persits.Jpeg")
Si Número de error <> 0 Entonces
Err.Borrar
BuildSmallPic = "Error_01"
Función de salida
End If
'Comprueba si existe la imagen original
Dims_MapOriginalPath
s_MapOriginalPath = Servidor.MapPath(s_OriginalPath)
AspJpeg.Open s_MapOriginalPath 'Abre la imagen original
Si Número de error <> 0 Entonces
Err.Borrar
BuildSmallPic = "Error_02"
Función de salida
End If
'Obtiene el ancho y alto de la miniatura proporcionalmente
Dim n_OriginalWidth, n_OriginalHeight 'Ancho y alto de la imagen original
Dim n_BuildWidth, n_BuildHeight 'Ancho y alto de la miniatura
Atenuar div1, div2
Oscuro n1, n2
n_OriginalWidth = AspJpeg.Ancho
n_OriginalHeight = AspJpeg.Altura
div1 = n_AnchoOriginal / n_AltoOriginal
div2 = n_AlturaOriginal / n_AnchoOriginal
norte1 = 0
norte2 = 0
Si n_OriginalWidth > n_MaxWidth entonces
n1 = n_AnchoOriginal / n_AnchoMax
Demás
n_BuildWidth = n_OriginalWidth
Terminar si
Si n_OriginalHeight > n_MaxHeight Entonces
n2 = n_AlturaOriginal / n_AlturaMáxima
Demás
n_AlturaDeConstrucción = n_AlturaOriginal
Terminar si
Si n1 <> 0 o n2 <> 0 entonces
Si n1 > n2 Entonces
n_BuildWidth = n_MaxWidth
n_BuildHeight = n_MaxWidth * div2
Demás
n_BuildWidth = n_MaxHeight * div1
n_BuildHeight = n_MaxHeight
Terminar si
End If
'Especificar ancho y alto para generar
AspJpeg.Width = n_BuildWidth
AspJpeg.Altura = n_BuildHeight
'--Comenzar a guardar miniaturas--
Dim pos, s_OriginalFileName, s_OriginalFileExt 'Posición, nombre de archivo original, extensión de archivo original
pos = InStrRev(s_OriginalPath, "/") + 1
s_OriginalFileName = Medio(s_OriginalPath, pos)
pos = InStrRev(s_OriginalFileName, ".")
s_OriginalFileExt = Mid(s_OriginalFileName, pos)
Dim s_MapBuildBasePath, s_MapBuildPath, s_BuildFileName 'Ruta absoluta de miniatura, nombre de archivo de miniatura
Dim s_EndFlag 'Ejemplo de etiqueta final de nombre de archivo de imagen pequeña: si el nombre del archivo de imagen grande es "image1.gif" y la etiqueta final es "_small", entonces el nombre del archivo de imagen pequeña es "image1_small.gif"
Si es correcto (s_BuildBasePath, 1) <> "/" Entonces s_BuildBasePath = s_BuildBasePath & "/"
s_MapBuildBasePath = Servidor.MapPath(s_BuildBasePath)
s_EndFlag = "_small" 'Se puede personalizar, siempre que se pueda distinguir el tamaño de la imagen
s_BuildFileName = Reemplazar (s_OriginalFileName, s_OriginalFileExt, "") & s_EndFlag & s_OriginalFileExt
s_MapBuildPath = s_MapBuildBasePath & "" & s_BuildFileName
AspJpeg.Save s_MapBuildPath 'Guardar
Si Número de error <> 0 Entonces
Err.Borrar
BuildSmallPic = "Error_03"
Función de salida
Terminar si
'--Guardar la miniatura en el disco--
'Cerrar sesión en la instancia
Establecer AspJpeg = Nada
Si Número de error <> 0 Entonces
BuildSmallPic = "Error_Otro"
Err.Borrar
Terminar si
BuildSmallPic = s_BuildBasePath y s_BuildFileName
Función final
%>