検索した後、次のコードを発見しました。
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
問題を解決するために「変更」できないことが 2 つあります。
- ストリームを渡すのは好きではありませんが、のようなパスを渡すことを好みます
C:\mysite\photo\myphoto.gif
。ストリームではなくファイルを受け入れるように「変換」するにはどうすればよいですか? - この関数では、「スケール」値を渡す必要があります。しかし、私は画像が大きすぎるかどうかを確認することを好みます (たとえば >
1024x768
)1024x768
。でこれを確認するにはどうすればよいですかSystem.Drawing
。
ご覧のとおり、私は System.Drawing について何も知らないので、この仕事を解決するには「難しい」助けが必要です。