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.984 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. 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. sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. |
||||||||||||||||
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. |