Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <webmaster@primactif.com> wrote in message
news:OotDTBqfGHA.4892@TK2MSFTNGP02.phx.gbl...
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.
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.