Don’t forget a streams position
While working on a project that required jpg’s to be resized, I found plenty of examples on the web.
2 Things:
- Don’t use System.Drawing.Image.GetThumbnailImage()
- With steams, don’t forget to pay special attention to position.
This is a small function for resizing jpg’s
Private Function getResizedImageAsStream(
ByVal xAxis As Integer,
ByVal yAxis As Integer,
ByVal imgOriginal As Drawing.Image)
As System.IO.MemoryStream
Dim bmpTarget As New Bitmap(xAxis, yAxis)
Dim objGraphics As Graphics
= Graphics.FromImage(bmpTarget)
Dim strmImage As New System.IO.MemoryStream
objGraphics.CompositingQuality
= Drawing2D.CompositingQuality.HighSpeed
objGraphics.InterpolationMode
= Drawing2D.InterpolationMode.HighQualityBicubic
objGraphics.CompositingMode
= Drawing2D.CompositingMode.SourceCopy
objGraphics.DrawImage(imgOriginal, 0, 0, xAxis, yAxis)
bmpTarget.Save(strmImage, Drawing.Imaging.ImageFormat.Jpeg)
‘reset stream to beginning
strmImage.Position = 0
Return strmImage
End Function