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 15.987 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
Neu! sevCoolbar 3.0 Professionelle Toolbars im modernen Design! Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |