Rubrik: Grafik und Font · Bilder & Icons | VB-Versionen: VB4, VB5, VB6 | 30.08.01 |
Größe einer BMP/JPG oder GIF-Datei Mit einem kleinen Trick lässt sich die Größe einer BMP, JPG oder GIF-Bilddatei sehr leicht ermitteln. | ||
Autor: Dieter Otter | Bewertung: | Views: 21.499 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, Win8, Win10, Win11 | Beispielprojekt auf CD |
Welche Größe hat eine bestimmte Bilddatei? Mit dieser Frage ist nicht gemeint, welchen Speicherplatz das Bild auf der Festplatte belegt, sondern vielmehr, welche Ausmasse das Bild hat, also wie breit und wie hoch ist das Bild.
Visual Basic selbst unterstützt zwar einige der gängigen Bild-Grafikformaten, wie z.B. BMP, JPG, WMF oder GIF-Dateien - eine Funktion für das Ermitteln der Bildgröße selbst gibt es aber nicht. Aber das ist auch gar nicht so schlimm, denn mit Hilfe einer ImageBox lassen sich Höhe und Breite eines Bildes sehr schnell ermitteln.
Hierzu plazieren Sie ein Image-Objekt auf die Form und setzen die Eigenschaften Visible und Stretch auf False. Über die LoadPicture-Eigenschaft wird dann zur Laufzeit die Bilddatei geladen. Das Image-Objekt passt sich automatisch der Größe der Bilddatei an (Stretch wurde aus diesem Grund auch auf False gesetzt) und über die ScaleX und ScaleY Anweisungen werden dann die Ausmasse der Bilddatei z.B. in Pixel ermittelt. Danach wird das Bild wieder aus der ImageBox entfernt und somit die belegten Ressourcen wieder freigegeben.
Und hier der entsprechende Code
' Bild laden (in unsichtbare ImageBox) With Image1 .Stretch = False .Visible = False .Picture = LoadPicture("IrgendEinBild.jpg") ' Größenumrechnung in Pixel Dim nWidth As Long Dim nHeight As Long nWidth = ScaleX(.Width, vbTwips, vbPixels) nHeight = ScaleY(.Height, vbTwips, vbPixels) ' Bild wieder entfernen (Speicher freigeben) .Picture = LoadPicture() ' Größe in MsgBox anzeigen MsgBox "Dimension: " & nWidth & " x " & nHeight End With