none
Abrir imágenes Tiff en Silverlight 4 RRS feed

  • Pregunta

  • Tengo que realizar un programa en silverlight 4, para la edición de imágenes radiológicas en formato tiff.

    El programa debe poder retocar el brillo y contraste en determinadas zonas o en toda la imagen.

    El programa debe abrir una imagen del cliente a través de un OpenFileDialog y presentar dicha imagen en pantalla para poder definir las áreas  donde aplicar los filtros de brillo, contraste etc.

    El problema que me encuentro es al mostrar las imágenes en formato Tiff.

    El código que uso es el siguiente:

    Private Sub btnExplorar_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnExplorar.Click

     

            Dim ofd As New OpenFileDialog

            With ofd

                .Multiselect = False

                .Filter = "Archivos Tiff (*.tif)|*.tif"

            End With

     

            If ofd.ShowDialog Then

                If (ofd.File.Length > 0) Then

     

                    Dim fs As Stream = ofd.File.OpenRead

                    Dim b As Byte() = New Byte(fs.Length) {}

                    fs.Read(b, 0, fs.Length)

     

                    Dim bi As New BitmapImage

                    bi.SetSource(fs)

                    Image1.Source = bi

                    fs.Close()

     

                End If

            End If

     

        End Sub

     

    Este código funciona para imágenes jpg o png, pero con las imágenes tif me da la siguiente excepción:

    Error catastrófico (Excepción de HRESULT: 0x8000FFFF (E_UNEXPECTED))

    {System.Exception: Error catastrófico (Excepción de HRESULT: 0x8000FFFF (E_UNEXPECTED))" & vbCrLf & "   en MS.Internal.XcpImports.CheckHResult(UInt32 hr)" & vbCrLf & "   en MS.Internal.XcpImports.BitmapSource_SetSource(BitmapSource bitmapSource, CValue& byteStream)" & vbCrLf & "   en System.Windows.Media.Imaging.BitmapSource.SetSourceInternal(Stream streamSource)" & vbCrLf & "   en System.Windows.Media.Imaging.BitmapImage.SetSourceInternal(Stream streamSource)" & vbCrLf & "   en System.Windows.Media.Imaging.BitmapSource.SetSource(Stream streamSource)" & vbCrLf & "   en SilverlightApplication1.MainPage.btnExplorar_Click(Object sender, RoutedEventArgs e)" & vbCrLf & "   en System.Windows.Controls.Primitives.ButtonBase.OnClick()" & vbCrLf & "   en System.Windows.Controls.Button.OnClick()" & vbCrLf & "   en System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)" & vbCrLf & "   en System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)" & vbCrLf & "   en MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)}

    He buscado información al respecto por la web y por lo que he leído, silverlight no soporta imágenes en formato Tiff, alguna idea de cómo poder abrir las imágenes tiff.

     

    jueves, 3 de marzo de 2011 12:01

Respuestas

  • Hola mcanal.

    Siento decir que silverligth no tiene soporte para Tiff, actualmente solo jpeg y png que a fin de cuentas son los mas usados.

    No obstante tienes 2 opciones basicamente:

    1.- comprar un componente de terceros si necesitas manejar tiff en silverlight

    2.- en el servidor web transformar tiff a jpeg o png mediante c# (que es muy sencillo) y luego suministrarselo a silverlight.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    • Propuesto como respuesta Stalin Pimentel miércoles, 16 de marzo de 2011 3:57
    • Marcado como respuesta Marc Julià viernes, 18 de marzo de 2011 13:09
    viernes, 4 de marzo de 2011 18:09