Ao exibir produtos na frente do site, geralmente são usadas miniaturas. Clique para entrar e ver a imagem grande.
As miniaturas trazem dois problemas:
1. Se apenas uma imagem grande for transmitida para o fundo, a largura e a altura da imagem grande só serão fixadas ao exibir a miniatura. Isso não só causará a deformação da miniatura, mas também diminuirá a velocidade de acesso à página.
2. Se o plano de fundo carregar duas imagens de cada vez, uma imagem grande e uma miniatura. Nesse caso, não há problema em 1, mas causará muitos problemas para a equipe de back-end. Como a equipe de backend não sabe necessariamente como processar e gerar miniaturas, mesmo que saiba e possa processá-lo rapidamente, algum tempo é perdido;
O código a seguir pode ajudá-lo a usar o componente AspJpeg para gerar miniaturas de acordo com a proporção de largura e altura.
Download do componente AspJpeg: http://www.aspjpeg.com/download.html
Uso do componente AspJpeg: http://www.mydw.cn/tech/1/766.html
Código de registro: 48958-77556-02411
<%
Dim sOriginalPath
sOriginalPath = "imagens/1.gif"
'O caminho da imagem original geralmente é obtido após o upload, ou
Dim é obtido do banco de dados sReturnInfo, sSmallPath 'A função retorna informações, caminho da miniatura
sReturnInfo = BuildSmallPic(sOriginalPath, "imagens", 100, 100)
Response.Write "Informações de retorno:" & sReturnInfo & "<br/>"
Se InStr(sReturnInfo, "Error_") <= 0 Então
sSmallPath = sReturnInfo 'A informação de retorno é
'Escreve sSmallPath no banco de dados
'
Outro
Response.Write "Erro detalhado:"
Selecione Caso sReturnInfo
Caso "Erro_01"
Response.Write "<font color='red'>Falha ao criar o componente AspJpeg, o componente não foi instalado e registrado corretamente</font>" & "<br/>"
Caso "Erro_02"
Response.Write "<font color='red'>A imagem original não existe, verifique o valor passado no parâmetro s_OriginalPath</font>" & "<br/>"
Caso "Erro_03"
Response.Write "<font color='red'>Falha ao salvar a miniatura. Possíveis motivos: o endereço base para salvar a miniatura não existe, verifique o valor passado no parâmetro s_OriginalPath; não há permissão de gravação no diretório; espaço em disco insuficiente< /font>" e "<br/>"
Caso "Erro_Outro"
Response.Write "<font color='red'>Erro desconhecido</font>" e "<br/>"
Finalizar seleção
Resposta.Fim
Terminar se
%>
Nome do arquivo original: <%=sOriginalPath%><br/>
Nome do arquivo de miniatura: <%=sSmallPath%><br/>
Imagem original: <img src='<%=sOriginalPath%>' border=0><br/><br/>
Miniatura: <img src='<%=sSmallPath%>' border=0>
<%
'================================================ ================
'Autor: laifangsong QQ: 25313644
'Função: Gera miniaturas com base em imagens especificadas
'Nota: Os "caminhos" mencionados abaixo são todos caminhos relativos ao arquivo que chama esta função.
'parâmetro:
' s_OriginalPath: Exemplo de caminho da imagem original: images/image1.gif
' s_BuildBasePath: O caminho base para geração de imagens, independentemente de terminar com "/", por exemplo: imagens ou imagens/
' n_MaxWidth: Gera a largura máxima da imagem
' Se a miniatura exibida em primeiro plano for 100*100, aqui n_MaxWidth=100, n_MaxHeight=100.
' n_MaxHeight: Gera a altura máxima da imagem
'Valor de retorno:
'Retorna o caminho da imagem em miniatura gerada
'Tratamento de erros:
'Se ocorrer um erro durante a execução da função, um código de erro será retornado. O código de erro começa com "Error".
' Erro_01: Falha ao criar o componente AspJpeg, o componente não foi instalado e registrado corretamente.
' Erro_02: A imagem original não existe, verifique o valor passado no parâmetro s_OriginalPath
' Erro_03: Falha ao salvar a miniatura. Possíveis motivos: O endereço base para salvar a miniatura não existe, verifique o valor passado no parâmetro s_OriginalPath sem permissão de gravação no diretório;
'Error_Other: Erro desconhecido
'Exemplo de chamada:
'Dim sSmallPath 'Caminho da miniatura
' sSmallPath = BuildSmallPic("imagens/image1.gif", "imagens", 100, 100)
'================================================ ================
Função BuildSmallPic(s_OriginalPath, s_BuildBasePath, n_MaxWidth, n_MaxHeight)
Err.Limpar
Em caso de erro, retomar o próximo
'Verifica se o componente foi registrado
DimAspJpeg
Definir AspJpeg = Server.Createobject("Persits.Jpeg")
Se Err.Number <> 0 Então
Err.Limpar
BuildSmallPic = "Erro_01"
Função de saída
End If
'Verifica se a imagem original existe
Dims_MapOriginalPath
s_MapOriginalPath = Servidor.MapPath(s_OriginalPath)
AspJpeg.Open s_MapOriginalPath 'Abre a imagem original
Se Err.Number <> 0 Então
Err.Limpar
BuildSmallPic = "Erro_02"
Função de saída
End If
'Obtém a largura e a altura da miniatura proporcionalmente
Dim n_OriginalWidth, n_OriginalHeight 'Largura e altura da imagem original
Dim n_BuildWidth, n_BuildHeight 'Largura da miniatura, altura
Escureça div1, div2
Dim n1, n2
n_OriginalWidth = AspJpeg.Largura
n_OriginalHeight = AspJpeg.Height
div1 = n_OriginalWidth / n_OriginalHeight
div2 = n_OriginalHeight / n_OriginalWidth
n1 = 0
n2 = 0
Se n_OriginalWidth > n_MaxWidth Então
n1 = n_LarguraOriginal / n_MaxLargura
Outro
n_BuildWidth = n_OriginalWidth
Terminar se
Se n_OriginalHeight > n_MaxHeight Então
n2 = n_OriginalHeight / n_MaxHeight
Outro
n_BuildHeight = n_OriginalHeight
Terminar se
Se n1 <> 0 Ou n2 <> 0 Então
Se n1 > n2 Então
n_BuildWidth = n_MaxWidth
n_BuildHeight = n_MaxWidth * div2
Outro
n_BuildWidth = n_MaxHeight * div1
n_BuildHeight = n_MaxHeight
Terminar se
End If
'Especifique a largura e a altura para gerar
AspJpeg.Largura = n_BuildWidth
AspJpeg.Height = n_BuildHeight
'--Comece a salvar miniaturas--
Dim pos, s_OriginalFileName, s_OriginalFileExt 'Posição, nome do arquivo original, extensão do arquivo original
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 'Caminho absoluto da miniatura, nome do arquivo em miniatura
Dim s_EndFlag 'Exemplo de tag final de nome de arquivo de imagem pequeno: Se o nome do arquivo de imagem grande for "image1.gif" e a tag final for "_small", então o nome do arquivo de imagem pequeno será "image1_small.gif"
If Right(s_BuildBasePath, 1) <> "/" Then s_BuildBasePath = s_BuildBasePath & "/"
s_MapBuildBasePath = Servidor.MapPath(s_BuildBasePath)
s_EndFlag = "_small" 'Pode ser personalizado, desde que o tamanho da imagem possa ser diferenciado
s_BuildFileName = Substituir(s_OriginalFileName, s_OriginalFileExt, "") & s_EndFlag & s_OriginalFileExt
s_MapBuildPath = s_MapBuildBasePath & "" & s_BuildFileName
AspJpeg.Save s_MapBuildPath 'Salvar
Se Err.Number <> 0 Então
Err.Limpar
BuildSmallPic = "Erro_03"
Função de saída
Terminar se
'--Salve a miniatura no disco--
'Saia da instância
Definir AspJpeg = Nada
Se Err.Number <> 0 Então
BuildSmallPic = "Erro_Other"
Err.Limpar
Terminar se
BuildSmallPic = s_BuildBasePath & s_BuildFileName
Função Final
%>