OVH Cloud OVH Cloud

Redimensionner une image

1 réponse
Avatar
Bruno POUPON
Bonjour

je cheche à redimensionner une image, en .net 2.0 en utilisant les
memoryStream pour éviter de créer sur le disque les images redimentionnées.

mais je suis paumé et je tourne en rond

si vous avez une idée merci

1 réponse

Avatar
Etienne Deschênes
Bonjour,

Je pense que ca convient à votre besoin, c'est tiré du "Personal Website
Strater Kit" de VS 2005. (Vous devrez probablement adapter un peu le code
pour qu'il convienne à vos besoins.

Imports System
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Drawing.Imaging
Imports System.IO


Public Class PhotoManager

Public Enum PhotoSize
Small = 1
Medium = 2
Large = 3
Original = 4
End Enum
Private Shared Function ResizeImageFile(ByVal imageFile() As Byte, ByVal
targetSize As Integer) As Byte()
Using oldImage As System.Drawing.Image =
System.Drawing.Image.FromStream(New MemoryStream(imageFile))
Dim newSize As Size = CalculateDimensions(oldImage.Size,
targetSize)
Using newImage As Bitmap = New Bitmap(newSize.Width,
newSize.Height, PixelFormat.Format24bppRgb)
Using canvas As Graphics = Graphics.FromImage(newImage)
canvas.SmoothingMode = SmoothingMode.AntiAlias
canvas.InterpolationMode =
InterpolationMode.HighQualityBicubic
canvas.PixelOffsetMode = PixelOffsetMode.HighQuality
canvas.DrawImage(oldImage, New Rectangle(New Point(0,
0), newSize))
Dim m As New MemoryStream
newImage.Save(m, ImageFormat.Jpeg)
Return m.GetBuffer
End Using
End Using
End Using
End Function

Private Shared Function CalculateDimensions(ByVal oldSize As Size, ByVal
targetSize As Integer) As Size
Dim newSize As Size
If (oldSize.Height > oldSize.Width) Then
newSize.Width = CType((oldSize.Width * CType((targetSize /
CType(oldSize.Height, Single)), Single)), Integer)
newSize.Height = targetSize
Else
newSize.Width = targetSize
newSize.Height = CType((oldSize.Height * CType((targetSize /
CType(oldSize.Width, Single)), Single)), Integer)
End If
Return newSize
End Function

End Class

Cordialement,

Etienne

"Bruno POUPON" wrote in message
news:
Bonjour

je cheche à redimensionner une image, en .net 2.0 en utilisant les
memoryStream pour éviter de créer sur le disque les images
redimentionnées.

mais je suis paumé et je tourne en rond

si vous avez une idée merci