none
URGENT ! Resize image ne fonctionne plus RRS feed

  • Question

  • Bonjour

    Une fonctionnalité d'un outil qui tourne depuis plusieurs années ne fonctionne plus.
    Cette fonctionnalité est dans un service WCF

    Elle consiste :
    => à importer une image,
    => la passer en 96dpi
    => Dans le cas des png transparent, changement du fond
    => Redimensionnement
    Tout ça se fait en partant d'un objet  BitmapSource
    En sortie un tableau de byte

    Quand je configure mon projet sur IIS EXPRESS ça fonctionne
    En production les image en sortie sont soit blanche soit noir...

    Ce que je ne comprends pas, c'est que tout marchait jusqu'à fin de semaine dernière

    C'est relativement urgent...évidemment

    L'objet BitmapSource est ok, j'ai vérifié

    Sources (post suivant)


    FB

    samedi 7 octobre 2017 15:24

Toutes les réponses

  •     Function ResizeImage(imgCache As BitmapSource, NewImagePath As String, ByRef Dest As I_PhotoTaille, ByRef strMess As String) As Boolean
            Dim iret As Boolean = False
            Try
    
    
                ' Redimension DPI
                If imgCache.DpiX <> Dest.Dpi Or imgCache.DpiY <> Dest.Dpi Then
                    Dim width As Integer = imgCache.PixelWidth
                    Dim height As Integer = imgCache.PixelHeight
    
                    Dim stride As Integer = width * imgCache.Format.BitsPerPixel ' 4 bytes / pixel 
    
                    Dim pixelData As Byte() = New Byte(stride * height - 1) {}
                    imgCache.CopyPixels(pixelData, stride, 0)
    
                    imgCache = BitmapFrame.Create(width, height, Dest.Dpi, Dest.Dpi, PixelFormats.Bgra32, Nothing, _
                        pixelData, stride)
                End If
                Dim iTypeImg As I_TypeImg = GetTypeIMG("", Dest.idTypeImg)
    
                Dim bf As BitmapFrame = BitmapFrame.Create(imgCache)
                Dim group As New DrawingGroup()
                RenderOptions.SetBitmapScalingMode(group, BitmapScalingMode.HighQuality)
                group.Children.Add(New ImageDrawing(bf, New Rect(0, 0, Dest.Width, Dest.Height)))
    
                Dim targetVisual As New DrawingVisual()
    
                Dim targetContext As DrawingContext = targetVisual.RenderOpen()
    
                'Utilisé pour les png
                If Not Dest.CouleurFond Is Nothing Then
                    targetContext.DrawRectangle(System.Windows.Media.Brushes.White, Nothing, New Rect(0, 0, Dest.Width, Dest.Height))
                End If
    
                targetContext.DrawDrawing(group)
    
                Dim target = New RenderTargetBitmap(Dest.Width, Dest.Height, DPi, DPi, PixelFormats.Pbgra32)
                targetContext.Close()
                target.Render(targetVisual)
    
                Dim targetFrame As BitmapFrame = BitmapFrame.Create(target)
                Dim targetEncoder As BitmapEncoder
                targetEncoder = GetEncoder(iTypeImg)
                targetEncoder.Frames.Add(targetFrame)
    
                Dim ms As IO.MemoryStream = New IO.MemoryStream
                Dim msEncoder As BitmapEncoder = GetEncoder(iTypeImg)
                msEncoder.Frames.Add(targetFrame)
                msEncoder.Save(ms)
    
                Dest.Img = ms.GetBuffer()
                ms.Dispose()
    
                iret = True
            Catch ex As Exception
                strMess = ex.Message
            End Try
    


    FB

    samedi 7 octobre 2017 15:26
  • Bonjour,

    Ce soucis est-il toujours d'actualité?


    J&#233;r&#233;my Jeanson MVP, MSCD, MCTS, MCP &lt;a href=&quot;http://blogs.developpeur.org/JeremyJeanson/&quot;&gt;http://blogs.developpeur.org/JeremyJeanson//&lt;/a&gt; (French or English spoken)

    jeudi 16 août 2018 08:24
    Modérateur