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 16.057 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. |
sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.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. |