Es gibt viele ASP -Komponenten, die im Internet Miniaturansichten generieren können. Wenn Ihr virtueller Raum nicht unterstützt, neue Komponenten zu registrieren, sind Sie möglicherweise das Gefühl, dass Ihre Website ihren Glanz verloren hat. Kennen Sie die Schritte, um Miniaturansichten ohne Komponenten zu generieren? Lassen Sie uns mit dem Herausgeber des falschen neuen Technologiekanals darüber erfahren!
Generieren Sie Miniaturansichten ohne Komponenten
Schauen wir uns zuerst die Grundlagen an. Zunächst wissen wir, dass der folgende Code auf der Seite angezeigt wird:
SRC ist der Bildpfad, der Rand steuert die Kantenbreite des Bildes, die Breite ist die Länge des Bildes und die Höhe der Höhe des Bildes. Die Generation von Miniaturansichten skaliert tatsächlich die ursprüngliche Größe. Um die Verzerrung zu minimieren, werden wir jedoch im Allgemeinen skaliert. Daher wird das Erhalten der Länge und Breite des Bildes zum Fokus der Erzeugung von Miniaturansichten.
Hier sind die Schritte zum Schreiben einer Komponenten-freien Miniaturansichterzeugung:
1. Holen Sie sich die Bildgröße ohne Komponenten
Ich habe einen Artikel mit ASCII -Code gesehen, um Bildgrößen ohne Komponenten zu erhalten, als ich zum ersten Mal ASP lernte. Später probierte ich es und stellte fest, dass ich es online überprüfte, als ich die Größe von JPG-ähnlichen Bildern bekam und festgestellt habe, dass viele Websites dieses Programm nachgedruckt haben, aber keiner von ihnen wies auf die Mängel dieses Programms hin, geschweige denn die Lösung für die Mängel. Später ging ich Googled und fand schließlich einen Artikel, in dem die Verwendung von adodb.stream eingeführt wurde, um Bildgrößen zu erhalten. Ich habe es versucht, indem ich den Code gemäß der eingeführten Methode geändert habe. Der Effekt ist wirklich gut. Jetzt werde ich es herausnehmen und mit Ihnen teilen:
Verwenden Sie adodb.stream, um die gemeinsame Klasse <% der Bildgröße zu erhalten
'//////////////// GPS: Holen Sie sich die Bildgröße /////////////
'///////////////////////////////// ./////.
'//////////// zitiert von Leon (Xinqing) 11. August 2005 ///////////////////////////////////////////
Klasse GPS
Dim Aso
Private sub class_initialize
Setzen Sie ASO = createObject ("adodb.stream")
ASO.MODE = 3
ASO.Type = 1
ASO.Open
Ende sub
Private sub class_terate
Setzen Sie ASO = nichts
Ende sub
Private Funktion Bin2str (Bin)
Dim i, str
Für i = 1 bis lenb (bin)
Clow = Midb (bin, i, 1)
Wenn ASCB (Clow) <128 dann
STR = STR & CHR (ASCB (Clow))
Anders
I = i+1
Wenn ich <= lenb (bin) dann Str = str & chr (ASCW (MIDB (Bin, I, 1) & Clow))
Ende wenn
Nächste
Bin2str = str
Endfunktion
Private Funktion Num2str (Num, Basis, Linse)
'GPS (2005-8-11)
Dim Ret
ret = "" "
While (num> = base)
ret = (num mod base) & ret
num = (num - num mod base)/base
Wend
Num2str = rechts (String (Linse, "0") & Num & Ret, Linse)
Endfunktion
Private Funktion Str2num (STR, Basis)
'GPS (2005-8-11)
Dim Ret
ret = 0
für i = 1 bis len (str)
ret = ret *base + cint (mid (str, i, 1))
nächste
Str2num = ret
Endfunktion
Private Funktion Binval (Bin)
'GPS (2002-8-11)
Dim Ret
ret = 0
für i = lenb (bin) bis 1 Schritt -1
ret = ret *256 + ascb (Midb (bin, i, 1))
nächste
Binval = ret
Endfunktion
Private Funktion Binval2 (Bin)
'GPS (2002-8-11)
Dim Ret
ret = 0
für i = 1 bis lenb (bin)
ret = ret *256 + ascb (Midb (bin, i, 1))
nächste
Binval2 = ret
Endfunktion
'/// Folgendes ist der aufrufende Code ///
Funktion getImageSize (filespec)
'GPS (2002-8-11)
Dim Ret (3)
ASO.LOADFROMFILE (filespec)
Bflag = ASO.Read (3)
Wählen Sie Case Hex (Binval (Bflag))
Fall "4E5089":
ASO.Read (15)
ret (0) = "png"
Ret (1) = Binval2 (ASO.Read (2))
ASO.Read (2)
Ret (2) = Binval2 (ASO.Read (2))
Fall "464947":
ASO.Read (3)
ret (0) = "gif"
ret (1) = binval (aso.read (2))
ret (2) = binval (aso.read (2))
Fall "535746":
ASO.Read (5)
bindata = aso.read (1)
SCONV = Num2str (ASCB (Bindata), 2,8)
NBits = str2num (links (SCONV, 5), 2)
sconv = mid (sconv, 6)
während (Len (SCONV)
SCONV = SCONV & NUM2STR (ASCB (BINDATA), 2,8)
Wend
ret (0) = "swf"
ret (1) = int (ABS (STR2NUM (MID (SCHONV), 1*NBITS+1, NBITS), 2) -SR2NUM (MID (SCHONV, 0*NBITS+1, NBITS), 2))/20)
ret (2) = int (ABS (str2num (Mid (SCONV, 3*NBits+1, NBit), 2) -Str2num (MID (SCHONV, 2*NBITS+1, NBITS), 2))/20)
Fall "FFD8ff":
Tun
Do: p1 = binval (ASO.Read (1)): Schleife während P1 = 255 und nicht ASO.eos
Wenn P1> 191 und P1 <196, dann beenden Sie sonst ASO.Read (Binval2 (ASO.Read (2))-2)
Do: p1 = binval (ASO.Read (1)): Schleife während P1 <255 und nicht ASO.eos
Schleife während wahr
ASO.Read (3)
ret (0) = "jpg"
Ret (2) = Binval2 (ASO.Read (2))
Ret (1) = Binval2 (ASO.Read (2))
Fall sonst:
Wenn Sie links (bin2str (bflag), 2) = "Bm" dann
ASO.Read (15)
ret (0) = "BMP"
ret (1) = binval (aso.read (4))
ret (2) = binval (aso.read (4))
anders
ret (0) = ""
Ende wenn
Ende auswählen
ret (3) = "width =" "" "& ret (1) &" "" "Height =" "" & ret (2) & "" "" "" "
getImagesize = ret
Endfunktion
Endklasse
%>
Kopieren Sie den oben genannten Code, um eine GPS.asp -Datei zu generieren, damit die allgemeine Klasse ohne Komponente, um die Bildgröße zu erhalten, in Ordnung ist.
2. Holen Sie sich den Bildpfad
Da mehr als ein Bild und die Bilder klassifiziert werden müssen, haben wir ein Feld imgurl entwickelt, das den relativen Pfad des Bildes in der Datenbank speichert. Wir haben alle hochgeladenen Bilder in einen Ordner namens Images eingelegt (wie bei der Hochladen von Bildern ohne Komponenten nicht viel sage). Entwerfen wir nun eine Seite "showimg.asp", um Miniaturansichten und verwandte Informationen anzuzeigen. Das spezifische Design lautet wie folgt:
Bild:
Bildformat:
Bildgröße:
Bildgröße:
Anzahl der Klicks:
Im Folgenden erhalten wir den absoluten Weg zum Bild. Der Code ist wie folgt:
<%
'///// Erhalten Sie den absoluten Weg von showimg.asp //////
Schwacher Einbruch
Curpile = Server.MAppath (Request.Servervariables ("path_info"))
Dimer Curfilename, Dateiname
'///// der relative Pfad des Bildes (in der Datenbank gespeichert)
cufileName = rs ("imgurl")
'/////, weil Showimg.asp im selben Verzeichnis wie Bilder ist. Wir verwenden Instrev, um den Pfad der Bilder ///// zu erhalten
Dateiname = links (Curde, Instrrev (Curde, "/")) & cufilename
'///// GPS -Entität erstellen /////
Dim getPicssize
Setzen Sie GetPicSize = New GPS
Setzen Sie fs = server.createObject ("scripting.FilesSystemObject").
'///// Erhalten Sie den Bildtyp /////
Schwacher Picsuffixname
Picsuffixname = fs.getExtensionName (Dateiname)
Dim Pd '// Bilddimension
Dim Pwidth, Pheight
Wählen Sie Case Picsuffixname
Fall "GIF", "BMP", "JPG", "PNG":
'///// rufe die Funktion getImagesize in der GPS -Generalklasse an, um die Bildgröße ///// zu erhalten
Pd = getPicSize.getImageSize (Dateiname)
Pwidth = pd (1) '// Bildbreite holen
Pheight = pd (2) '// Bildhöhe erhalten
Fall "SWF"
Pd = getPicSize.getImageSize (Dateiname)
Pwidth = pd (1) '// Flash Breite abrufen
Pheight = pd (2) '// Flash -Höhe erhalten
Fall sonst
Ende auswählen
Setzen Sie fs = nichts
Setzen Sie GetPicSize = nichts
%>
Kopieren Sie den obigen Code nach *4) >>
Das obige ist in Ordnung!
Natürlich können einige Leute sagen, dass Sie PATH_INFO nicht verwenden müssen, um den Pfad zu erhalten. Sie können einfach Server.Mappath () direkt verwenden. Haha, jeder hat seine eigenen Vorlieben. Der Hauptgrund ist, dass ich PATH_INFO verwenden kann, um einige Funktionen von FSO zu implementieren, aber ich habe es nicht mit server.mappath () gemacht, also habe ich das verwendet.
3. Definieren Sie die Miniaturansichtgröße
Dieser Teil des Code unterscheidet sich von der eigenen Meinung. Zunächst müssen wir den Größenbereich der Miniaturansichtsanzeige angeben, zum Beispiel: 300x260, der Code kann so geschrieben werden:
<%
Dim Pxwidth, pxHeight
Dim pp '// proportional
Wenn pwidth = 0 oder pwidth = "" dann
Pxwidth = 0
PxHeight = 0
Anders
Pp = formatnumber (pwidth/pheight, 2) '// Add-Width-Verhältnis
Ende wenn
Wenn pwidth> = pheight dann
Wenn pwidth> = 300 dann
Pxwidth = 300
PxHeight = formatnumber (300/pp, 0)
Anders
Pxwidth = pwidth
PxHeight = pheight
Ende wenn
Anders
Wenn Pheight> = 260 dann
PxHeight = 260
Pxwidth = formatnumber (260*pp, 0)
Anders
Pxwidth = pwidth
PxHeight = pheight
Ende wenn
Ende wenn
%>
Schreiben Sie den obigen Code sofort nach dem zweiten Schritt. Der Code beim Aufrufen lautet wie folgt:
Border = "0" Breite = <%= pxwidth%> Höhe = <%= pxHeight%>>
Was das Bildformat betrifft, können Sie <%= picsuffixname%> verwenden, und die Bildgröße kann geschrieben werden
<%
Antwort
%>
Die Bildgröße kann mit FSO.getFileSize (Dateiname) erreicht werden, während die Anzahl der Klicks einfach mit SQL -Anweisungen erreicht werden kann, sodass die spezifische Codierung nicht mehr beschrieben wird.
Auf diese Weise wird ein komponentenfreies Miniaturansatzprogramm geschrieben, das möglicherweise etwas klug ist, aber solange Sie die Methode beherrschen können, wird es erheblich verbessert. >
Im obigen Artikel handelt es sich um die Betriebsmethode zur Generierung von Miniaturansichten ohne Komponenten. Ich glaube, jeder hat ein gewisses Verständnis. Wenn Sie weitere technische Informationen wissen möchten, achten Sie bitte weiter auf den falschen neuen Technologiekanal!