Ver Mensaje Individual
  #142 (permalink)  
Antiguo 03/09/2007, 10:13
yomesmo
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 20 años, 4 meses
Puntos: 1
Upload thumbnails con ASP.net

Una situación muy común y de la que curiosamente hay poca documentación. Si necesitas subir imágenes y que estas se redimensionen automaticamente a las medidas que tu quieras.

Cita:
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<%@Page aspcompat=true Language ="VB" debug ="true" %>
<html>
<script language="VB" runat="server">
Sub EnviaFormulario(Sender as Object, E as EventArgs)
' Definimos el archivo enviado por el formulario como Imagen
Dim Imagen as System.Drawing.Image
dim shtWidth,shtHeight

Imagen = System.Drawing.Image.FromStream(Archivo.PostedFile .InputStream)



' Definimos las dimensiones de la miniatura
Dim AnchoMiniatura as Integer, AltoMiniatura as Integer
AnchoMiniatura = request("ancho")
AltoMiniatura = request("alto")


If Imagen.Width > Imagen.Height Then 'portrait
shtWidth = 100
' Work out a proportionate height from width
shtHeight = Imagen.Height / (Imagen.Width / shtWidth)
Else 'landscape
shtHeight = 120
' Work out a proportionate width from height
shtWidth = Imagen.Width / (Imagen.Height / shtHeight)

End If






' Definimos el nombre del archivo, y el nombre de la miniatura
Dim NombreArchivo as String
NombreArchivo = right(archivo.PostedFile.filename,len(archivo.Post edFile.filename) - instrrev(archivo.PostedFile.filename,"\"))
' Definimos las rutas donde grabará los archivos
Dim RutaArchivo as String, RutaMiniatura as String
RutaArchivo = ""
RutaMiniatura = ""
' Guardamos el archivo original en disco
'Imagen.Save(Server.MapPath(RutaArchivo & NombreArchivo), ImageFormat.JPEG)
' Creamos la Miniatura con las dimensiones enviadas, y la definimos como Imagen
Dim Miniatura as System.Drawing.Image
Miniatura = Imagen.GetThumbnailImage(shtWidth, shtHeight, Nothing, New IntPtr())
' Grabamos la Miniatura en disco con formato JPG
Miniatura.Save(Server.MapPath(RutaMiniatura & NombreArchivo), ImageFormat.JPEG)


End Sub
</script>
<body>
<form enctype="multipart/form-data" runat="server">
Imagen: <input id="Archivo" type="file" runat="server">
<br><br>
Ancho :
<input name="ancho" type="text" id="ancho">
Alto:
<input name="alto" type="text" id="alto">
<input value="Enviar" type="submit" OnServerClick="EnviaFormulario" runat="server">
</form>
</body>
</html>
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...