Lors de l'affichage des produits sur le devant du site Web, des vignettes sont généralement utilisées. Cliquez pour entrer et voir ensuite la grande image.
Les vignettes posent deux problèmes :
1. Si une seule grande image est transmise à l'arrière-plan, la largeur et la hauteur de la grande image ne seront fixées que lors de l'affichage de la vignette, ce qui entraînera non seulement une déformation de la vignette, mais ralentira également la vitesse d'accès à la page.
2. Si l'arrière-plan télécharge deux images à chaque fois, une grande image et une vignette. Dans ce cas, il n'y a pas de problème en 1, mais cela causera beaucoup de problèmes au personnel backend. Parce que le personnel backend ne sait pas nécessairement comment traiter et générer des vignettes, même s'il le sait et peut le traiter rapidement, du temps est perdu ;
Le code suivant peut vous aider à utiliser le composant AspJpeg pour générer réellement des vignettes en fonction du rapport largeur/hauteur.
Téléchargement du composant AspJpeg : http://www.aspjpeg.com/download.html
Utilisation du composant AspJpeg : http://www.mydw.cn/tech/1/766.html
Code d'enregistrement : 48958-77556-02411
<%
Dim sOriginalPath
sCheminOriginal = "images/1.gif"
'Le chemin de l'image d'origine est généralement obtenu après le téléchargement, ou
Dim est obtenu à partir de la base de données sReturnInfo, sSmallPath 'La fonction renvoie des informations, un chemin miniature
sReturnInfo = BuildSmallPic(sOriginalPath, "images", 100, 100)
Response.Write "Retourner les informations :" & sReturnInfo & "<br/>"
Si InStr(sReturnInfo, "Error_") <= 0 Alors
sSmallPath = sReturnInfo 'Les informations de retour sont
'Écrivez sSmallPath dans la base de données
'
Autre
Réponse.Écrivez « Erreur détaillée : »
Sélectionnez le cas sReturnInfo
Cas "Erreur_01"
Response.Write "<font color='red'>Échec de la création du composant AspJpeg, le composant n'a pas été installé et enregistré correctement</font>" & "<br/>"
Cas "Erreur_02"
Response.Write "<font color='red'>L'image originale n'existe pas, vérifiez la valeur passée dans le paramètre s_OriginalPath</font>" & "<br/>"
Cas "Erreur_03"
Response.Write "<font color='red'>Échec de l'enregistrement de la vignette. Raisons possibles : l'adresse de base pour enregistrer la vignette n'existe pas, vérifiez la valeur passée dans le paramètre s_OriginalPath ; aucune autorisation d'écriture dans le répertoire ; espace disque insuffisant< /font>" et "<br/>"
Cas "Erreur_Autre"
Réponse.Écrivez "<font color='red'>Erreur inconnue</font>" et "<br/>"
Fin de la sélection
Réponse.Fin
Fin Si
%>
Nom du fichier d'origine : <%=sOriginalPath%><br/>
Nom du fichier miniature : <%=sSmallPath%><br/>
Image originale : <img src='<%=sOriginalPath%>' border=0><br/><br/>
Vignette : <img src='<%=sSmallPath%>' border=0>
<%
'================================================== = ===============
'Auteur:laifangsong QQ:25313644
'Fonction : Générer des vignettes basées sur des images spécifiées
'Remarque : Les "chemins" mentionnés ci-dessous sont tous des chemins relatifs au fichier qui appelle cette fonction.
'paramètre:
' s_OriginalPath : Exemple de chemin d'image d'origine : images/image1.gif
' s_BuildBasePath : Le chemin de base pour générer des images, qu'il se termine ou non par "/", par exemple : images ou images/
' n_MaxWidth : Génère la largeur maximale de l'image
' Si la vignette affichée au premier plan est de 100*100, ici n_MaxWidth=100, n_MaxHeight=100.
' n_MaxHeight : Génère la hauteur maximale de l'image
'Valeur de retour :
'Renvoie le chemin de l'image miniature générée
'Gestion des erreurs :
' Si une erreur se produit lors de l'exécution de la fonction, un code d'erreur sera renvoyé. Le code d'erreur commence par "Erreur".
' Erreur_01 : échec de la création du composant AspJpeg, le composant n'a pas été correctement installé et enregistré.
' Erreur_02 : L'image originale n'existe pas, vérifiez la valeur passée dans le paramètre s_OriginalPath
' Erreur_03 : échec de l'enregistrement des vignettes. Raisons possibles : L'adresse de base de sauvegarde des vignettes n'existe pas, vérifiez la valeur transmise dans le paramètre s_OriginalPath, aucune autorisation d'écriture dans le répertoire, espace disque insuffisant ;
' Error_Autre : erreur inconnue
'Exemple d'appel :
'Dim sSmallPath 'Chemin de la miniature
' sSmallPath = BuildSmallPic("images/image1.gif", "images", 100, 100)
'================================================== = ===============
Fonction BuildSmallPic (s_OriginalPath, s_BuildBasePath, n_MaxWidth, n_MaxHeight)
Err.Effacer
En cas d'erreur, reprendre ensuite
'Vérifiez si le composant a été enregistré
DimAspJpeg
Définir AspJpeg = Server.Createobject("Persits.Jpeg")
Si Err.Number <> 0 Alors
Err.Effacer
BuildSmallPic = "Erreur_01"
Fonction de sortie
End If
'Vérifier si l'image originale existe
Dims_MapOriginalPath
s_MapOriginalPath = Serveur.MapPath(s_OriginalPath)
AspJpeg.Open s_MapOriginalPath 'Ouvre l'image originale
Si Err.Number <> 0 Alors
Err.Effacer
BuildSmallPic = "Erreur_02"
Fonction de sortie
End If
'Obtenir la largeur et la hauteur de la vignette proportionnellement
Dim n_OriginalWidth, n_OriginalHeight 'Largeur et hauteur de l'image originale
Dim n_BuildWidth, n_BuildHeight 'Largeur et hauteur de la vignette
Dim div1, div2
Dim n1, n2
n_OriginalWidth = AspJpeg.Width
n_OriginalHeight = AspJpeg.Hauteur
div1 = n_OriginalWidth / n_OriginalHeight
div2 = n_OriginalHeight / n_OriginalWidth
n1 = 0
n2 = 0
Si n_OriginalWidth > n_MaxWidth Alors
n1 = n_OriginalWidth / n_MaxWidth
Autre
n_BuildWidth = n_OriginalWidth
Fin si
Si n_OriginalHeight > n_MaxHeight Alors
n2 = n_HauteurOriginale / n_HauteurMax
Autre
n_BuildHeight = n_OriginalHeight
Fin si
Si n1 <> 0 Ou n2 <> 0 Alors
Si n1 > n2 Alors
n_BuildWidth = n_MaxWidth
n_BuildHeight = n_MaxWidth * div2
Autre
n_BuildWidth = n_MaxHeight * div1
n_BuildHeight = n_MaxHeight
Fin si
End If
'Spécifiez la largeur et la hauteur à générer
AspJpeg.Width = n_BuildWidth
AspJpeg.Height = n_BuildHeight
'--Commencer à enregistrer les vignettes--
Dim pos, s_OriginalFileName, s_OriginalFileExt 'Position, nom du fichier d'origine, extension du fichier d'origine
pos = InStrRev(s_OriginalPath, "/") + 1
s_OriginalFileName = Milieu (s_OriginalPath, pos)
pos = InStrRev(s_OriginalFileName, ".")
s_OriginalFileExt = Mid(s_OriginalFileName, pos)
Dim s_MapBuildBasePath, s_MapBuildPath, s_BuildFileName 'Chemin absolu de la miniature, nom du fichier miniature
Dim s_EndFlag 'Exemple de balise de fin de nom de petit fichier image : si le nom du grand fichier image est "image1.gif" et que la balise de fin est "_small", alors le nom du petit fichier image est "image1_small.gif"
Si Right(s_BuildBasePath, 1) <> "/" Alors s_BuildBasePath = s_BuildBasePath & "/"
s_MapBuildBasePath = Serveur.MapPath(s_BuildBasePath)
s_EndFlag = "_small" 'Peut être personnalisé, à condition que la taille de l'image puisse être distinguée
s_BuildFileName = Remplacer (s_OriginalFileName, s_OriginalFileExt, "") & s_EndFlag & s_OriginalFileExt
s_MapBuildPath = s_MapBuildBasePath & "" & s_BuildFileName
AspJpeg.Save s_MapBuildPath 'Enregistrer
Si Err.Number <> 0 Alors
Err.Effacer
BuildSmallPic = "Erreur_03"
Fonction de sortie
Fin si
'--Enregistrer la vignette sur le disque--
'Déconnectez-vous de l'instance
Définir AspJpeg = Rien
Si Err.Number <> 0 Alors
BuildSmallPic = "Erreur_Autre"
Err.Effacer
Fin si
BuildSmallPic = s_BuildBasePath & s_BuildFileName
Fin de la fonction
%>