WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Weite + Breite von Bildern in VB (http://www.wcm.at/forum/showthread.php?t=55181)

nbauer 02.05.2002 08:26

Weite + Breite von Bildern in VB
 
Ich möchte von Bilddateien (.jpg) die Weite und Breite in Pixel auslesen:

ScrX = Screen.TwipsPerPixelX
ScrY = Screen.TwipsPerPixelY

Twips per Pixel ergibt jeweils 15

Set b = LoadPicture("Test.jpg", vbLPLargeShell)
h = b.Height / 15
w = b.Width / 15

Die erhaltenen Werte entsprechen nicht den Pixel, sondern es kommen periodische Dezimalwerte heraus:

1. Bild 600 x 900 Pixel: 1058,3333 x 1587,3333
2. Bild 208 x 368 Pixel: 366,8666 x 649,3333

Dies ergibt einen Faktor von aufgerundet 1,764, jedoch pro Bild und Seitenangabe differieren diese Werte. Ich habe diverse Bildschirmauflösungen probiert, dies hat keinen Einfluss auf die Werte.

Wer weiss weiter?

Ciao
nbauer

Sonic 02.05.2002 18:04

HI!

Also eigentlich sollte deine Methode fast die richtige Breite und Höhe liefern. Fast weil bei der width und height Eigenschaft der Rand (Border) Mitgerechnet wird. (Sind glaub ich 4 Pixel)

Schau mal ob du nicht die ScaleMode eigenschaft verstellt hast! ZB durch das setzen von scalewidth oder scaleHight.

Wenn du in deiner Programmlogik keine Twips brauchst stell doch den ScaleMode von der Picturebox auf pixel (3) und frage die Scalewidth und scaleheigth eigenschaft ab die liefert immer genau die Bildbreite/Höhe ohne umrechnen.

Code:

  b.ScaleMode = 3
  h = b.ScaleHeight
  w = b.ScaleWidth
  MsgBox w & "x" & h

lg


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag