Dieser Tipp erklärt, wie man die Größe einer BMP-Datei ermitteln kann, ohne das Bild zu laden oder die Größe selbstanzugeben. Ich habe diese Funktion geschrieben, um mir das Laden von Surfaces in DirectDraw zu vereinfachen. Wenn Sie bei vielen Bitmaps die Größen nicht einzeln angeben und die verlängerte Ladezeit durch das Laden des Bildes in eine PictureBox vermeiden wollen, ist diese Funktion sehr hilfreich. Was tut die Funktion genau? Zuerst werden Variablen für Breite und Höhe deklariert: Dim nWidth As Integer Dim nHeight As Integer Als Nächstes wird die Bitmap-Datei im Binary-Modus geöffnet, so dass eingelesene Hex-Code direkt in das Integer-Format konvertiert wird: Dim F F = FreeFile Open FileName For Binary As #F Nun wird die Get-Methode benutzt, um die beiden Hex-Codes für Breite und Höhe aus der Datei zu lesen: Get [Datei-Nummer], [Daten-Offset], [Zielvariable] Die Dateinummer ist in unserem Beispiel F, die Zielvariable ist nWidth bzw. nHeight. Der Daten-Offset beschreibt die Position des Bytes in der Datei, an dem die einzulesenen Daten beginnen. In (glücklicherweise) jeder Bitmap-Datei befinden sich die Daten für die Breite an Position 18 und für dieHöhe an Position 22. Nun lesen wir die Daten ein und schließen die Datei wieder: Get #F, 19, nWidth Get #F, 23, nWidth Close #F Eine Frage stellt sich noch: Warum wurden die Offsets auf 19 und 23 statt auf 18 und 22 gestellt? Hier nochmals der gesamte Code in Form einer universellen Funktion: ' Bitmap-Größe auslesen Public Sub GetBitmapSize(ByVal sFile As String, _ nWidth As Integer, nHeight As Integer) Dim F As Integer F = FreeFile Open sFile For Binary As #F Get #F, 19, nWidth Get #F, 23, nHeight Close #F End Sub Dieser Tipp wurde bereits 5.054 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Mehr als 650 MByte geballtes Wissen! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - Online-Update-Funktion u.v.m. |
sevEingabe 2.0 ![]() Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Buchempfehlung Tipp des Monats Dieter Otter Snapshot einer Webseite erstellen Mit dieser Funktion lässt sich ein Snapshot einer Webseite erstellen, die aktuell im WebBrowser-Control angezeigt wird. TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 25 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1524.50 EUR... |
||||||||||||||||
|
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. |
|||||||||||||||||


Bildgröße von Bitmap-Dateien



