codigo que muestra como se cambia el tamaño de una imagen usando la libreria Wpf
Para aquellas veces que sólo ocupamos cambiar el tamaño de la imagen manteniendo sus proporciones, WPF nos facilita el trabajo con las propiedades DecodePixelWidth o DecodePixelHeight de la clase BitmapImage.
De aquí es importante notar tres cosas:
Funcion [ResizeImage]
''' <summary> ''' Cambia el tamaño de una imagen ''' </summary> ''' <param name="imagenOriginal">La imagen original</param> ''' <param name="newSize">El nuevo tamaño de la imagen</param> ''' <returns>Devuelve una nueva imagen con el tamaño previamente elegido</returns> ''' <remarks> ''' <para> De aquí es importante notar dos cosas:</para> ''' <para> Al método le pasamos una imagen y un nuevo tamaño. ''' El nuevo tamaño se asigna a la propiedad DecodePixelWidth que será ''' la nueva anchura de la imagen. ''' </para> ''' <para> La altura de la imagen se deja sin asignar para que se ajuste automáticamente ''' y la imagen mantenga sus proporciones. ''' </para> ''' <code> ''' <Bibliografía> ''' Cambiar el tamaño de una imagen en WPF – C# ''' https://digitalnous.wordpress.com/2010/08/07/cambiar-el-tamao-de-una-imagen-en-wpf-c/ ''' Información general sobre imágenes ''' https://msdn.microsoft.com/es-es/library/ms748873(v=vs.110).aspx ''' BitmapImage.DecodePixelWidth (Propiedad) ''' https://msdn.microsoft.com/es-es/library/system.windows.media.imaging.bitmapimage.decodepixelwidth(v=vs.100).aspx ''' </Bibliografía> ''' </code> ''' </remarks> Public Function ResizeImage(ByVal imagenOriginal As System.Windows.Media.Imaging.BitmapImage, ByVal newSize As Integer) _ As System.Windows.Media.Imaging.BitmapImage Dim BI As New System.Windows.Media.Imaging.BitmapImage BI.BeginInit() BI.UriSource = imagenOriginal.UriSource BI.DecodePixelWidth = newSize BI.EndInit() Return BI End Function
Con esta imagen podemos hacer lo que queramos, por ejemplo, con el siguiente código podemos guardarla en formato JPG en el disco
Funcion [SaveDecodeToJPG]
''' <summary> ''' Guarda una imagen en el disco en formato Jpg ''' </summary> ''' <param name="filename">El nombre completo del fichero</param> ''' <param name="unaImagen">la imagen que se va a guardar</param> Public Sub SaveDecodeToJPG(ByVal filename As String, ByVal unaImagen As System.Windows.Media.Imaging.BitmapImage) If unaImagen Is Nothing Then Exit Sub If filename Is Nothing Then Exit Sub If filename.Length = 0 Then Exit Sub Dim stream As New IO.FileStream(filename, IO.FileMode.Create) Dim jpgEncoder As New JpegBitmapEncoder() jpgEncoder.Frames.Add(BitmapFrame.Create(unaImagen)) jpgEncoder.Save(stream) stream.Close() End Sub
© 1997 - - La Güeb de Joaquín | |||||
Joaquín Medina Serrano
|
|||||
|
Codificación | |
Fecha de creación | |
Última actualización | |
![]() |