Cómo obtener tamaño, ancho y alto de una imagen, y cómo modificar su tamaño

Para obtener el tamaño, ancho y alto de una imagen, usa el siguiente código:

Primero importa:

  1. Imports System.IO
  2. Imports System.Drawing

Para obtener tamaño, ancho y alto de una imagen:

  1. Dim fs As FileStream = New FileStream("c:mirutamiimagen.jpg", FileMode.Open, FileAccess.Read, FileShare.Read)
  2. Dim LaImagen As System.Drawing.Image
  3. LaImagen = System.Drawing.Image.FromStream(fs)
  4. Label3.Text = "Tamaño: " & Convert.ToInt32(fs.Length) & "<br/>"
  5. Label3.Text = Label3.Text & "Ancho: " & LaImagen.Width & "<br/>"
  6. Label3.Text = Label3.Text & "Alto: " & LaImagen.Height & "<br/>"
  7. fs.Close()
  8. fs = Nothing

Para modificar su tamaño:

  1. Dim fs As FileStream = New FileStream("c:\miruta\miimagen.jpg", FileMode.Open, FileAccess.Read, FileShare.Read)
  2. Dim LaImagen As System.Drawing.Image
  3. LaImagen = System.Drawing.Image.FromStream(fs)
  4.  
  5. Dim ancho, alto As Integer
  6. ancho = 100
  7. 'este calculo es para que la foto no pierda proporciones
  8. alto = Math.Floor((100 / LaImagen.Width) * LaImagen.Height)
  9.  
  10. Dim NuevoBitmap As Bitmap = New Bitmap(ancho, alto)
  11. Dim Graficos As Graphics = Graphics.FromImage(NuevoBitmap)
  12. Graficos.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
  13. Graficos.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
  14. Graficos.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
  15. Dim Rectangulo As Rectangle = New Rectangle(0, 0, ancho, alto)
  16. Graficos.DrawImage(LaImagen, Rectangulo)
  17. NuevoBitmap.Save("c:\miruta\thumb.jpg", NuevoBitmap.RawFormat)
  18. fs.Close()
  19. fs = Nothing

Este código es muy útil para crear vistas previas de nuestras imágenes (o thumbnails) automáticamente.

Cómo subir un archivo al servidor usando ASP.NET

Para subir un archivo al servidor mediante una aplicación web ASP.NET 2, usa el siguiente código:

  1. <asp:FileUpload ID="FileUpload1" runat="server" /><br />
  2. <asp:Button ID="Subir" runat="server" Text="Subir foto" />
  1. If FileUpload1.HasFile Then
  2.    FileUpload1.SaveAs("c:\miruta" & FileUpload1.Filename)
  3. End If

Asegúrate de que el fólder en el que vas a grabar tus archivos tenga permisos de escritura por parte del usuario ASPNET y/o NETWORK SERVICE.

Añadir metatags al elemento head mediante programación

Para añadir metatags al elemento head utilizando programación (ASP.NET 2), primero asegúrate de que el elemento head tenga su propiedad runat=server.

En el código de la página coloca lo siguiente:

  1. Dim cabeza As HtmlHead
  2. cabeza = DirectCast(Header, HtmlHead)
  3. Dim meta As HtmlMeta = New HtmlMeta()
  4. meta.Attributes.Add("cache-control", "no-store, must-revalidate, private")
  5. meta.Attributes.Add("Pragma", "no-cache")
  6. cabeza.Controls.Add(meta)

Funciona aunque la página esté ligada a un master page.

Expresión regular para limitar número de caracteres en TextArea

Trabajando con ASP.NET, cuando pones un TextBox con la propiedad TextMode = MultiLine, el control se convierte en un textarea de HTML. Debido a esto, la propiedad MaxLength no funciona.

Si quieres limitar el contenido del texto a un número específico de caracteres, te recomiendo utilizar un RegularExpressionValidator con la siguiente ValidationExpression:

^[\s\S]{0,25}$

Solamente cambia el número 25 por el número máximo que desees.

Buscando en Internet encontrarás varios javaScripts que van mostrando cuántos caracteres quedan y cuando se alcanza el límite no te dejan escribir más. Pero si alguien tiene deshabilitado javaScript en su navegador entonces esa validación no se realizará.

Lo bueno de que lo hagas con un RegularExpressionValidator es que hace la validación tanto en el cliente como en el servidor.