Rubrik: Grafik und Font · Bilder & Icons | VB-Versionen: VB4, VB5, VB6 | 29.05.03 |
Größe eines Bildes ermitteln III Eine Prozedur, mit der sich die Größe eines Bildes ermitteln lässt, ohne Form-Objekt und ohne zusätzlichem-Control! | ||
Autor: Dieter Otter | Bewertung: | Views: 18.544 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wie man die Größe eines Bildes ermittelt haben wir Ihnen bereits mehrfach gezeigt:
- Verwenden eines unsichtbaren Image-Objekts
- Verwenden der ScaleX- und ScaleY-Methoden eines Form-Objekts
Was aber, wenn weder ein Image-Control, noch ein Form-Objekt zur Verfügung steht? In diesem Fall verwenden Sie einfach nachfolgende Funktion.
' Größe eines Bildes in Pixel ermitteln Public Function GetPictureSize(ByVal sFile As String, _ nWidth As Long, nHeight As Long) As Boolean Dim oPic As New StdPicture On Error GoTo ErrHandler Set oPic = LoadPicture(sFile) ' Umwandlung von Maßeinheit Himetric nach Pixel erfolgt ' normalerweise über ScaleX und ScaleY eines Form-Objekts ' ' nWidth = Form1.ScaleX(oPic.Width, vbHimetric, vbPixels) ' nHeight = Form1.ScaleY(oPic.Height, vbHimetric, vbPixels) ' ' Existiert kein Form-Objekt nehmen wir den Faktor 26.46 nWidth = oPic.Width / 26.46 nHeight = oPic.Height / 26.46 Set oPic = Nothing GetPictureSize = True On Error GoTo 0 Exit Function ErrHandler: GetPictureSize = False End Function
Aufruf:
Dim nWidth As Long Dim nHeight As Long If GetPictureSize(App.Path & "\MyPicture.jpg", _ nWidth, nHeight) = True Then ' Größe in MsgBox anzeigen MsgBox "Bildgröße: " & CStr(nWidth) & " x " _ CStr(nHeight) & " Pixel" Else ' Fehler... MsgBox "Fehler... " & _ "Evtl. wurde ein ungültiger Bildpfad angegeben." End If
Umrechnen nach Twips...
Benötigt man die Größenangabe nicht in Pixel, sondern in der VB-Maßeinheit Twips, lässt sich das wie folgt machen:
nWidth = nWidth * Screen.TwipsPerPixelX nHeight = nHeight * Screen.TwipsPerPixelY