Bei der Anzeige von Produkten im Vordergrund der Website werden in der Regel Miniaturansichten verwendet. Klicken Sie hier, um einzutreten und dann das große Bild anzuzeigen.
Miniaturansichten bringen zwei Probleme mit sich:
1. Wenn nur ein großes Bild in den Hintergrund übertragen wird, werden die Breite und Höhe des großen Bildes nur bei der Anzeige des Miniaturbilds festgelegt. Dies führt nicht nur zu einer Verformung des Miniaturbilds, sondern verlangsamt auch die Seitenzugriffsgeschwindigkeit.
2. Wenn der Hintergrund jedes Mal zwei Bilder hochlädt, ein großes Bild und ein Miniaturbild. In diesem Fall gibt es in 1 kein Problem, aber es wird dem Backend-Personal große Probleme bereiten. Da die Backend-Mitarbeiter nicht unbedingt wissen, wie man Miniaturansichten verarbeitet und generiert, selbst wenn sie es wissen und schnell verarbeiten können, wird etwas Zeit verschwendet.
Der folgende Code kann Ihnen dabei helfen, mithilfe der AspJpeg-Komponente tatsächlich Miniaturansichten entsprechend dem Breiten- und Höhenverhältnis zu generieren.
Download der AspJpeg-Komponente: http://www.aspjpeg.com/download.html
Verwendung der AspJpeg-Komponente: http://www.mydw.cn/tech/1/766.html
Registrierungscode: 48958-77556-02411
<%
Dimmen Sie sOriginalPath
sOriginalPath = "images/1.gif"
'Der ursprüngliche Bildpfad wird im Allgemeinen nach dem Hochladen abgerufen, oder
Dim wird aus der Datenbank abgerufen sReturnInfo, sSmallPath 'Die Funktion gibt Informationen zurück, Miniaturbildpfad
sReturnInfo = BuildSmallPic(sOriginalPath, "images", 100, 100)
Response.Write "Return information:" & sReturnInfo & "<br/>"
Wenn InStr(sReturnInfo, "Error_") <= 0 Dann
sSmallPath = sReturnInfo 'Die Rückgabeinformationen sind
'Schreibe sSmallPath in die Datenbank
'
Anders
Response.Write „Detaillierter Fehler:“
Wählen Sie Case sReturnInfo aus
Fall „Fehler_01“
Response.Write „<font color='red'>Fehler beim Erstellen der AspJpeg-Komponente, die Komponente wurde nicht korrekt installiert und registriert</font>“ & „<br/>“
Fall „Fehler_02“
Response.Write „<font color='red'>Das Originalbild existiert nicht, überprüfen Sie den im s_OriginalPath-Parameter übergebenen Wert</font>“ & „<br/>“
Fall „Fehler_03“
Response.Write „<font color='red'>Speichern der Miniaturansicht fehlgeschlagen. Mögliche Gründe: Die Basisadresse zum Speichern der Miniaturansicht ist nicht vorhanden. Überprüfen Sie den im Parameter s_OriginalPath übergebenen Wert. Keine Schreibberechtigung für das Verzeichnis. Nicht genügend Speicherplatz auf der Festplatte /font>" & "<br/>"
Fall „Error_Other“
Response.Write „<font color='red'>Unbekannter Fehler</font>“ & „<br/>“
Endauswahl
Antwort.Ende
Ende wenn
%>
Originaldateiname: <%=sOriginalPath%><br/>
Name der Miniaturbilddatei: <%=sSmallPath%><br/>
Originalbild: <img src='<%=sOriginalPath%>' border=0><br/><br/>
Miniaturansicht: <img src='<%=sSmallPath%>' border=0>
<%
'============================================== = ===============
'Autor: laifangsong QQ:25313644
'Funktion: Miniaturansichten basierend auf angegebenen Bildern erstellen
'Hinweis: Die unten genannten „Pfade“ sind alle relative Pfade relativ zur Datei, die diese Funktion aufruft.
'Parameter:
' s_OriginalPath: Beispiel für den Originalbildpfad: images/image1.gif
' s_BuildBasePath: Der Basispfad zum Generieren von Bildern, unabhängig davon, ob er mit „/“ endet, zum Beispiel: images oder images/
' n_MaxWidth: Erzeugt die maximale Breite des Bildes
' Wenn das im Vordergrund angezeigte Miniaturbild 100*100 ist, hier n_MaxWidth=100, n_MaxHeight=100.
' n_MaxHeight: Erzeugt die maximale Höhe des Bildes
'Rückgabewert:
'Gibt den Pfad des generierten Miniaturbilds zurück
'Fehlerbehandlung:
' Wenn während der Funktionsausführung ein Fehler auftritt, wird ein Fehlercode zurückgegeben. Der Fehlercode beginnt mit „Fehler“.
' Fehler_01: Die AspJpeg-Komponente konnte nicht erstellt werden, die Komponente wurde nicht korrekt installiert und registriert.
' Fehler_02: Das Originalbild existiert nicht. Überprüfen Sie den im Parameter s_OriginalPath übergebenen Wert
' Fehler_03: Das Speichern der Miniaturansicht ist fehlgeschlagen. Überprüfen Sie den im Parameter s_OriginalPath übergebenen Wert. Keine Schreibberechtigung für das Verzeichnis
' Error_Other: Unbekannter Fehler
'Anrufbeispiel:
'Dim sSmallPath 'Thumbnail-Pfad
' sSmallPath = BuildSmallPic("images/image1.gif", "images", 100, 100)
'============================================== = ===============
Funktion BuildSmallPic(s_OriginalPath, s_BuildBasePath, n_MaxWidth, n_MaxHeight)
Err.Clear
Bei Fehler Weiter fortsetzen
'Überprüfen Sie, ob die Komponente registriert wurde
DimAspJpeg
Setze AspJpeg = Server.Createobject("Persits.Jpeg")
Wenn Err.Number <> 0, dann
Err.Clear
BuildSmallPic = "Error_01"
Exit-Funktion
End If
'Überprüfen Sie, ob das Originalbild vorhanden ist
Dims_MapOriginalPath
s_MapOriginalPath = Server.MapPath(s_OriginalPath)
AspJpeg.Open s_MapOriginalPath 'Öffne das Originalbild
Wenn Err.Number <> 0, dann
Err.Clear
BuildSmallPic = "Error_02"
Exit-Funktion
End If
'Erhalten Sie die Breite und Höhe der Miniaturansicht proportional
Dim n_OriginalWidth, n_OriginalHeight 'Breite und Höhe des Originalbildes
Dim n_BuildWidth, n_BuildHeight 'Thumbnail-Breite, Höhe
Dimmen Sie div1, div2
Dimmen Sie n1, n2
n_OriginalWidth = AspJpeg.Width
n_OriginalHeight = AspJpeg.Height
div1 = n_OriginalWidth / n_OriginalHeight
div2 = n_OriginalHeight / n_OriginalWidth
n1 = 0
n2 = 0
Wenn n_OriginalWidth > n_MaxWidth, dann
n1 = n_OriginalWidth / n_MaxWidth
Anders
n_BuildWidth = n_OriginalWidth
Ende wenn
Wenn n_OriginalHeight > n_MaxHeight, dann
n2 = n_OriginalHeight / n_MaxHeight
Anders
n_BuildHeight = n_OriginalHeight
Ende wenn
Wenn n1 <> 0 oder n2 <> 0, dann
Wenn n1 > n2 Dann
n_BuildWidth = n_MaxWidth
n_BuildHeight = n_MaxWidth * div2
Anders
n_BuildWidth = n_MaxHeight * div1
n_BuildHeight = n_MaxHeight
Ende wenn
End If
'Geben Sie die zu generierende Breite und Höhe an
AspJpeg.Width = n_BuildWidth
AspJpeg.Height = n_BuildHeight
'--Miniaturansichten speichern--
Dim pos, s_OriginalFileName, s_OriginalFileExt 'Position, Originaldateiname, Originaldateierweiterung
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 'Absoluter Pfad der Miniaturansicht, Dateiname der Miniaturansicht
Dim s_EndFlag 'Beispiel für ein End-Tag für den Namen einer kleinen Bilddatei: Wenn der Name der großen Bilddatei „image1.gif“ und das End-Tag „_small“ lautet, lautet der Name der kleinen Bilddatei „image1_small.gif“.
If Right(s_BuildBasePath, 1) <> „/“ Then s_BuildBasePath = s_BuildBasePath & „/“
s_MapBuildBasePath = Server.MapPath(s_BuildBasePath)
s_EndFlag = "_small" 'Kann angepasst werden, solange die Größe des Bildes unterschieden werden kann
s_BuildFileName = Ersetzen(s_OriginalFileName, s_OriginalFileExt, "") & s_EndFlag & s_OriginalFileExt
s_MapBuildPath = s_MapBuildBasePath & "" & s_BuildFileName
AspJpeg.Save s_MapBuildPath 'Speichern
Wenn Err.Number <> 0, dann
Err.Clear
BuildSmallPic = "Error_03"
Exit-Funktion
Ende wenn
'--Speichern Sie die Miniaturansicht auf der Festplatte.--
'Melden Sie die Instanz ab
Stellen Sie AspJpeg = Nothing ein
Wenn Err.Number <> 0, dann
BuildSmallPic = "Error_Other"
Err.Clear
Ende wenn
BuildSmallPic = s_BuildBasePath & s_BuildFileName
Endfunktion
%>