Feedback

Bildgröße verändern (Verhältnis)

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

5 Kommentare

  1. 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

  2. @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]

  3. @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!!!

  4. @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.