vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Grafik und Font · Bilder und Icons   |   VB-Versionen: VB.NET03.01.07
Bilder in gewünschter Grösse speichern (VB 2005)

Bilder in neuer Größe speichern mit optionaler Konvertierung in ein anderes Format

Autor:   Stefan RembergBewertung:     [ Jetzt bewerten ]Views:  13.359 
www.mdb-tools.deSystem:  WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Manchmal benötigt man Bilder in einem einheitlichen Format oder Grösse. In folgendem kleinen Beispiel zeige ich eine Möglichkeit zum Abspeichern von Bildern in einer fest vorgegebenen Breite. Die Bildhöhe wird hierbei passend berechnet. Ebenfalls kann das Bild in einem anderen Format gespeichert werden.

Imports System.Drawing
Imports System.Drawing.Imaging
 
...
Private Function ConvertImage(ByVal sFile As String, _
  ByVal nWidth As Integer, ByVal nFormat As ImageFormat, _
  ByVal sNewFile As String) As Boolean
 
  ' Bildgröße errechnen.
  ' Hierbei wird die Originalbreite des Bildes ermittelt, 
  ' durch sich selbst geteilt und dann mit dem ausgewählten Wert 
  ' aus(der) Combobox multipliziert. 
  ' Die Original-Bildhöhe wird nun durch die Original-Bildbreite 
  ' geteilt und dann ebenfalls mit dem ausgewählten Wert der Combobox 
  ' multipliziert.
  ' So bleibt das Grössenverhältnis von Höhe und Breite erhalten.
 
  ' Originalbild laden
  Dim originalBild As Image = Image.FromFile(sFile)
 
  ' Neues Bild-Objekt in der neu berechneten Breite und Höhe erstellen
  Dim neuesBild As Image
  With originalBild
    neuesBild = New Bitmap(CInt(.Width / .Width * nWidth), _
      CInt(.Height / .Width * nWidth))
  End With
 
  ' Bild in der neuen Größe zeichnen
  Dim destGraphic As Graphics = Graphics.FromImage(neuesBild)
  With neuesBild
    destGraphic.DrawImage(originalBild, 0, 0, .Width + 1, .Height + 1)
  End With
 
  Try
    ' Neues Bild im gewünschten Form speichern
    neuesBild.Save(sNewFile, nFormat)
    destGraphic.Dispose()
    Return True
 
  Catch ex As Exception
    destGraphic.Dispose()
    Return False
  End Try
End Function

Beispiel für den Aufruf der Funktion

' Bild "d:\bild1.bmp" mit neuer fixer Breite von 
' 200 Pixel als JPG-Datei speichern
Dim bSuccess As Boolean = ConvertImage("d:\bild1.bmp", _
  200, ImageFormat.Jpeg, "c:\bild1.jpg")

Dieser Tipp wurde bereits 13.359 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel