经过搜索,我发现了这段代码:
Public Sub ResizeImage(ByVal scaleFactor As Double, ByVal fromStream As Stream, ByVal toStream As Stream)
Dim image__1 = System.Drawing.Image.FromStream(fromStream)
Dim newWidth = CInt(image__1.Width * scaleFactor)
Dim newHeight = CInt(image__1.Height * scaleFactor)
Dim thumbnailBitmap = New System.Drawing.Bitmap(newWidth, newHeight)
Dim thumbnailGraph = System.Drawing.Graphics.FromImage(thumbnailBitmap)
thumbnailGraph.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality
thumbnailGraph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality
thumbnailGraph.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
Dim imageRectangle = New System.Drawing.Rectangle(0, 0, newWidth, newHeight)
thumbnailGraph.DrawImage(image__1, imageRectangle)
thumbnailBitmap.Save(toStream, image__1.RawFormat)
thumbnailGraph.Dispose()
thumbnailBitmap.Dispose()
image__1.Dispose()
End Sub
有两件事我无法“修改”来解决我的问题:
- 我不想传递流,但我更喜欢传递
C:\mysite\photo\myphoto.gif
. 如何“转换”它以接受文件而不是流? - 在这个函数中,我必须传递一个“比例”值。但我更喜欢检查图像是否太大(例如 >
1024x768
)而不是将其调整为最大1024x768
. 我怎样才能用System.Drawing
.
如您所见,我对 System.Drawing 一无所知,因此我需要“硬”帮助来解决这项工作。