vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Grafik und Font · Bilder & Icons   |   VB-Versionen: VB5, VB605.07.02
Größe eines Bildes ermitteln II

Eine Prozedur, mit der sich die Größe eines Bildes ermitteln lässt, ohne hierfür ein Bild-Control einsetzen zu müssen.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  25.011 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

In einem unserer früheren Tipps haben wir Ihnen gezeigt, wie sich die Größe eines Bildes unter Verwendung eines Image-Controls ermitteln lässt. Der Nachteil dieser Variante ist, dass man eben auf der Form ein (unsichtbares) Image-Objekt benötigt.

Heute möchten wir Ihnen eine Prozedur vorstellen, mit der sich ebenfalls die Größe eines Bildes ermitteln lässt - jedoch ohne hierfür ein Image-Control verwenden zu müssen.

Ein weiterer Vorteil ist, dass Sie der Prozedur optional noch mitteilen können, in welcher Maßeinheit Sie die Größe ermittelt haben möchten (Twips, Pixel, usw.).

Und hier der Code:

' Größe eines Bildes ermitteln
Public Sub GetPictureSize(F As Form, _
  pPicture As StdPicture, _
  nWidth As Single, nHeight As Single, _
  Optional ByVal nScaleMode As _
  VBRUN.ScaleModeConstants = vbTwips)
 
  With pPicture
    nWidth = F.ScaleX(.Width, vbHimetric, nScaleMode)
    nHeight = F.ScaleY(.Height, vbHimetric, nScaleMode)
  End With
End Sub

Die Größenermittlung erfolgt über die ScaleX und ScaleY-Eigenschaften. Diese lassen sich jedoch nur auf ein Objekt anwenden, so dass Sie der Prozedur im ersten Parameter einfach ein Form-Objekt übergeben. Wichtig für die korrekte Umrechnung in die gewünschte Maßeinheit ist zu wissen, dass die Maßeinheit eines Standard-Pictures (StdPicture) immer vbHimetric ist. Der zweite Parameter erwartet das Bild. Übergeben Sie entweder die Picture-Eigenschaft eines existierenden Controls oder rufen Sie die Prozedur mit LoadPicture(Dateiname) auf. Im dritten und vierten Parameter bekommen Sie dann von der Prozedur die gewünschte Bildgröße zurückgeliefert. Der letzte Parameter ist optional und legt die gewünschte Maßeinheit fest. Wird nScaleMode nicht angegeben, werden Höhe und Breite des Bildes in Twips zurückgegeben.

Beispiel:

Dim nWidth As Single
Dim nHeight As Single
 
' Bildgröße in Pixels
GetPictureSize Me, LoadPicture("d:\bild1.jpg"), _ 
  nWidth, nHeight, vbPixels
 
MsgBox "Bildgröße: " & Format$(nWidth, "0") & _
  Format$(nHeight, "0")

Hinweis:
Die Rückgabewerte sind abhängig von der Auflösung des Bildes. Scheinbar sind die Maße bei einer Auflösung von 96 dpi korrekt. Liegt eine andere Auflösung vor, muss man das Ergebnis noch mit dem Faktor (96 dpi / tatsächliche Auflösung) multiplizieren (das aber nur unter Vorbehalt .
 

Dieser Tipp wurde bereits 25.011 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel