Sprache: VB
Diese Funktion ändert die größe eines Bilds und gibt es als Bitmap zurück. Hier muss man nur einen neue Breite angeben, das Verhältnis wird beibehalten.
Public Function PicResizeByWidth(ByVal SourceImage As String, ByVal NewWidth As Integer) As Bitmap
Dim InputBitmap As New Bitmap(SourceImage)
Dim SizeFactor As Decimal = NewWidth / InputBitmap.Width
Dim NewHeigth As Integer = SizeFactor * InputBitmap.Height
Dim OutputBitmap As New Bitmap(System.Drawing.Image.FromFile(SourceImage), NewWidth, NewHeigth)
PicResizeByWidth = OutputBitmap
InputBitmap.Dispose()
OutputBitmap.Dispose()
End Function
Public Function PicResizeByWidth(ByVal SourceImage As String, ByVal NewWidth As Integer) As Bitmap
Dim InputBitmap As New Bitmap(SourceImage)
Dim SizeFactor As Decimal = NewWidth / InputBitmap.Width
Dim NewHeigth As Integer = SizeFactor * InputBitmap.Height
Dim OutputBitmap As New Bitmap(System.Drawing.Image.FromFile(SourceImage), NewWidth, NewHeigth)
PicResizeByWidth = OutputBitmap
InputBitmap.Dispose()
OutputBitmap.Dispose()
End Function
Alte URL:
/snippet/bildgroesse-veraendern-verhaeltnis/120
Hallo!
Bin Anfänger in .NET.
Wie kann ich die Bitmap welche aus der Funktion zurückgegeben wird als „JPG“ speichern???
Bitte antworten – ist dringend!
Danke
@Tim Hartwig
Es wäre vielleicht allgemein öfter verwendbarer wenn man eine Bitmap übergeben kann und nicht nur den String. Sonst find ich es nur ein wenig in die Länge gezogen und Option Strict Off 😉
@IchBins
Rufe einfach die Save-Methode auf:
[code]Dim newBmp = PicResizeByWidth(„PATH“, Size)’Bild laden und größe verändern
newBmp.Save(„NewPath“, ImageFormat.Jpeg)[/code]
@Koopakiller
Hallo,
leider kriege ich die Speicherung nicht auf die Reihe.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim newBmp = PicResizeByWidth(„C:Bild.jpg“, 500)
newBmp.Save(„C:Bild_neu.jpg“, ImageFormat.Jpeg)
End Sub
System.ArgumentException wurde nicht behandelt.
Message=Ungültiger Parameter.
Help me please!!!
@IchBins
Das Problem ist folgende Zeile in dem Snippet:
[code]OutputBitmap.Dispose()[/code]
Entferne diese und es sollte laufen 😉
Dispose löscht das Bild aus dem Speicher, weswegen man es nicht mehr abspeichern kann. Darum die Exception.
@Koopakiller
Danke! Danke! Danke!