Jeg bruger følgende funktion for at resize billeder: Public Class ImageResizer Public Shared Function RezizeImage(ByVal b As Bitmap, ByVal width As Integer, ByVal height As Integer) As System.Drawing.Bitmap Dim bmpOut As System.Drawing.Bitmap = Nothing Try Dim bmp As Bitmap = b bmpOut = New Bitmap(width, height) Dim g As Graphics = Graphics.FromImage(bmpOut) g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality g.FillRectangle(Brushes.Transparent, 0, 0, width, height) g.DrawImage(bmp, 0, 0, width, height) bmp.Dispose() g.Dispose() g = Nothing Catch Return Nothing End Try Return bmpOut End Function End Class
Funktionen kaldes ved hjælp af: b = ImageResizer.RezizeImage(bOrg, MaxSize * iRatio, MaxSize)
Når jeg kun kalder min resize en enkelt gang fra en knap, virker det ok (selvom jeg ikke er helt tilfreds med kvaliteten), men problemet opstår først når jeg kalder funktionen 2 gang (pga. at jeg vil lave både en thump og en resize af samme billede). Fejlen er at jeg får en 'argumentet er ugyldigt' i følgende linie: g.DrawImage(bmp, 0, 0, width, height)
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Public Class ImageResizer Private Function ImageResizer() As Public End Function Public Shared Function RezizeImage(ByVal b As Bitmap, ByVal width As Integer, ByVal height As Integer) As System.Drawing.Bitmap Dim bmpOut As System.Drawing.Bitmap = Nothing Try Dim bmp As Bitmap = b bmpOut = New Bitmap(width, height) Dim g As Graphics = Graphics.FromImage(bmpOut) g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality g.FillRectangle(Brushes.Transparent, 0, 0, width, height) g.DrawImage(bmp, 0, 0, width, height) bmp.Dispose() g.Dispose() g = Nothing Catch Return Nothing End Try Return bmpOut End Function End Class
End Class
på aspx siden
Dim i As ImageResizer= New ImageResizer() 'resize image i.RezizeImage
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.