En primer lugar, sabemos que la imagen en la página es el siguiente código:
<img src = pic.gif border = 0 ancho = 300 altura = 260>
SRC es la ruta de la imagen, el borde controla el ancho de la imagen, el ancho es la longitud de la imagen y la altura es la altura de la imagen. La generación de un diagrama estrecho en realidad se está acercando el tamaño original. Pero para ser lo más distorsionados posible, seremos escalados proporcionales. Como resultado, el tamaño de longitud y ancho de la imagen también se ha convertido en el foco de un diagrama de deflexión.
El siguiente es el paso de escribir sin componentes para generar una miniatura:
1. Obtenga el tamaño de la imagen sin componentes
Antes de aprender ASP, vi un artículo usando el código ASCII para obtener el tamaño de la imagen sin componentes. Más tarde, lo intenté y descubrí que al obtener el tamaño de la clase JPG, no siempre se mostró correctamente después de verificarlo en línea, muchos sitios web reprodujeron este programa, pero nadie señaló los defectos de este programa, y mucho menos resolver los solo. Solución. Más tarde, Google fue un artículo que introdujo el tamaño del tamaño de la imagen usando ADODB.Stream.
Use ADODB.Stream para obtener la clase general del tamaño de la imagen
| El siguiente es el fragmento de código: <% '////////// gps: obtenga un tamaño ////////////////////////////// /////////////////////////////////////////////// /////////////////////////////////////////////// ///////////////////////////////////// ¿Gons '/////////// USE ADODB.STREAM para obtener el tamaño de la imagen //////////// '/////// Citado por Leon (Xinqing) 11 de agosto de 2005 ////////// GPS de clase ASO oscuro Sub class_initialize privado Establecer aso = createObject (ADODB.Stream) aso.mode = 3 aso.type = 1 Aso. Abre Final Sub class_merminate privado establecer aso = nada Final Función privada bin2str (bin) Dim I, str Para i = 1 a Lenb (bin) CLOW = MidB (Bin, I, 1) Si ASCB (CLOW) <128 entonces Str = str & chr (ascb (clow)) Demás I = i 1 Si i <= Lenb (bin) entonces str = str & chr (ascw (midb (bin, i, 1) y clow))) final si Próximo Bin2str = str Función final Función privada num2str (num, base, lente) 'GPS (2005-8-11) oscuro RET Retirado Mientras (num> = base) Ret = (num mod base) y retir num = (num -num mod base)/base encaminarse a Num2str = right (string (lente, 0) & num & ret, lente) Función final Función privada str2num (str, base) 'GPS (2005-8-11) oscuro RET Ret = 0 para i = 1 a Len (Str) Ret = ret *base cint (Mid (str, i, 1)) próximo Str2num = RET Función final Función privada binval (bin) 'GPS (2002-8-11) oscuro RET Ret = 0 para i = Lenb (bin) a 1 paso -1 Ret = Ret *256 ASCB (Midb (Bin, I, 1)) próximo Binval = RET Función final Función privada binval2 (bin) 'GPS (2002-8-11) oscuro RET Ret = 0 para i = 1 a Lenb (bin) Ret = Ret *256 ASCB (Midb (Bin, I, 1)) próximo Binval2 = RET Función final '/// El siguiente es el código de llamada /// Función getImageSize (FILEPEC) 'GPS (2002-8-11) Dim ret (3) Aso.LoadFromFile (Filespec) bflag = aso.read (3) Seleccione Caso Hex (Binval (BFLAG)) Caso 4E5089: aso.read (15) Ret (0) = png Ret (1) = binval2 (aso.read (2)) aso.read (2) Ret (2) = binval2 (aso.read (2)) Caso 464947: aso.read (3) Ret (0) = gif Ret (1) = binval (aso.read (2)) Ret (2) = binval (aso.read (2)) Caso 535746: aso.read (5) bindata = aso.read (1) Sconv = num2str (ascb (bindata), 2, 8) nbits = str2num (izquierda (sconv, 5), 2) SCONV = MID (SCONV, 6) While (Len (Sconv) <nbits*4) bindata = aso.read (1) SCONV = SCONV & NUM2STR (ASCB (Bindata), 2, 8) encaminarse a Ret (0) = swf Ret (1) = int (ABS (str2num (Mid (sconv, 1*nbits 1, nbits), 2) -str2num (Mid (sconv, 0*nbits 1, nbits), 2))/20) Ret (2) = int (ABS (Str2num (Mid (SCONV, 3*NBITS 1, NBITS), 2) -Str2Num (Mid (SCONV, 2*NBITS 1, NBITS), 2)/20) caso ffd8ff: HACER do: p1 = binval (aso.read (1)): bucle mientras p1 = 255 y no Aso.eos Si P1> 191 y P1 <196 la salida do lo otra. do: p1 = binval (aso.read (1)): bucle mientras p1 <255 y no Aso.eos Bucle mientras es verdadero aso.read (3) Ret (0) = jpg Ret (2) = binval2 (aso.read (2)) Ret (1) = binval2 (aso.read (2)) Caso más: Si se deja (bin2str (bflag), 2) = bm entonces aso.read (15) Ret (0) = BMP Ret (1) = binval (aso.read (4)) Ret (2) = binval (aso.read (4)) demás Ret (0) = final si final seleccionar Ret (3) = Width = & Ret (1) & Height = & Ret (2) & GetImagesize = RET Función final Clase final %> |
Copie el código anterior para generar archivos GPS.ASP, de modo que la clase general del tamaño de la imagen sin componentes esté bien.
2. Ahora diseñamos primero una página showimg.asp para mostrar un mapa de toque e información relacionada. El diseño específico es el siguiente:
imagen:
Formato de imagen: