Bild in Anwendung öffnen, grösse auf 128x128 ändern und Bild mit geänderter Grösse speichern

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    Bild in Anwendung öffnen, grösse auf 128x128 ändern und Bild mit geänderter Grösse speichern

    Hallo Zusammen

    Ich möchte ein Programm schreiben, in dem ich ein Bild per OpenFileDialog öffnen kann, welches danach angezeigt wird. Dann soll sich die Grösse des Bildes auf 128x128 Pixel ändern. Dieses Bild will ich dann in der neuen Grösse per SafeFileDialog abspeichern.
    Öffnen und Abspeichern klappt bereits. Allerdings kann ich das Bild nicht in der neuen Grösse Speichern sondern es wird in der Ursprungsgrösse gespeichert.

    VB.NET-Quellcode

    1. Dim readbt As New Bitmap(128, 128)
    2. Using g As Graphics = Graphics.FromImage(readbt)
    3. g.DrawImage(Image.FromFile("C:\Users\.....\Desktop\girls_beautyful_girls__004609_.jpg"), New Rectangle(0, 0, 128, 128))
    4. End Using
    5. Using sf As New SaveFileDialog
    6. sf.Filter = "JPEG Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif"
    7. If sf.ShowDialog() = Windows.Forms.DialogResult.OK Then
    8. Select Case sf.FilterIndex
    9. Case 1 : readbt.Save(sf.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
    10. Case 2 : readbt.Save(sf.FileName, System.Drawing.Imaging.ImageFormat.Bmp)
    11. Case 3 : readbt.Save(sf.FileName, System.Drawing.Imaging.ImageFormat.Gif)
    12. End Select
    13. End If
    14. End Using
    15. readbt.Dispose()


    [Edit] Dispose und Using eingefügt :)
    MFG 0x426c61636b4e6574776f726b426974
    InOffical VB-Paradise IRC-Server
    webchat.freenode.net/
    Channel : ##vbparadise

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „BlackNetworkBit“ ()

    Du solltest deinen SaveFileDialog disposen, @BlackNetworkBit:, am Besten mit einer Using-Anweisung, das implementiert dann IDisposable. Natürlich auch die Bitmaps ;) Zudem nach ShowDialog Klammern setzen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

    @Artentus: Ah, das hatte ich nicht beachtet. :rolleyes: Na ja, er soll beides disposen und gut is ;)
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: