Feedback

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

Veröffentlicht von am 7/2/2006
(6 Bewertungen)
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
Abgelegt unter Bild, Größe, Bitmap.

5 Kommentare zum Snippet

IchBins schrieb am 3/14/2014:
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
Koopakiller schrieb am 3/14/2014:
@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:
Dim newBmp = PicResizeByWidth("PATH", Size)'Bild laden und größe verändern
newBmp.Save("NewPath", ImageFormat.Jpeg)
IchBins schrieb am 3/18/2014:
@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!!!
Koopakiller schrieb am 3/18/2014:
@IchBins
Das Problem ist folgende Zeile in dem Snippet:
OutputBitmap.Dispose()

Entferne diese und es sollte laufen ;)
Dispose löscht das Bild aus dem Speicher, weswegen man es nicht mehr abspeichern kann. Darum die Exception.
IchBins schrieb am 3/19/2014:
@Koopakiller

Danke! Danke! Danke!
 

Logge dich ein, um hier zu kommentieren!