Die Verwendung von Using habe ich erst verwendet, nachdem ich es ohne versucht habe.
Das Result diese Code ist exakt das gleiche:
If StreamBild IsNot Nothing Then
Dim myimage As Bitmap = StreamBild
'Bild 120
imageConvert(myimage, 120, 120, _
Imaging.ImageFormat.Jpeg, Dateiname, False, False, _
120, 120)
'Bild600
imageConvert(myimage, 300, 300, _
Imaging.ImageFormat.Jpeg, Dateiname.Replace( _
"images120", "images600"), False, False, 300, 300)
myimage.Dispose()
End If auch beim Image600 ist myimage nothing
Public Sub imageConvert(ByVal ConvertBild As Bitmap, ByVal nWidth As _
Integer, ByVal nHeight As Integer, ByVal nFormat As ImageFormat, ByVal _
sNewFile As String, Optional ByVal CropImage As Boolean = False, Optional _
ByVal RotateImage As Boolean = True, Optional ByVal fixWidth As Integer = _
0, Optional ByVal fixHeight As Integer = 0)
' Neues Bild-Objekt in der neu berechneten Breite und Höhe erstellen
Dim neuesBild As Bitmap = ConvertBild
'---- Bild auf die Festgelegte Höhe und Breite bringen ----
If System.IO.File.Exists(sNewFile) Then System.IO.File.Delete(sNewFile)
Dim NewPosY As Integer = 0, NewPosX As Integer = 0
If fixHeight > neuesBild.Height Then NewPosY = CInt((fixHeight - _
neuesBild.Height) / 2)
If fixWidth > neuesBild.Width Then NewPosX = CInt((fixWidth - _
neuesBild.Width) / 2)
Dim fixBmp As Bitmap = New Bitmap(fixWidth, fixHeight, _
PixelFormat.Format32bppArgb)
Dim g As Drawing.Graphics = Graphics.FromImage(fixBmp)
g.Clear(Color.White)
g.SmoothingMode = SmoothingMode.HighQuality
g.CompositingQuality = CompositingQuality.HighQuality
g.InterpolationMode = InterpolationMode.High
g.DrawImage(neuesBild, New RectangleF(NewPosX, NewPosY, _
neuesBild.Width, neuesBild.Height), New RectangleF(0, 0, _
neuesBild.Width, neuesBild.Height), GraphicsUnit.Pixel)
fixBmp.Save(sNewFile, nFormat)
g.Dispose()
fixBmp.Dispose()
neuesBild.Dispose()
End Sub Joachim |