Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 2011
-
25 févr. 2007 à 13:40
mautone32
Messages postés11Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention12 août 2008
-
23 juil. 2008 à 17:10
Bonjour,
Petite question (et donc petite réponse ? ).
J'utilise une FileListBox pour récupérer la liste des fichiers images contenus dans un répertoire, aucun souci.
Je souhaiterai afficher dans un label la dimension du fichier sélectionné.
La sélection, pas de souci.
Pour les infos d'attributs de mon objet, je pensais utiliser un objet FSO (dans le genre de code que l'on peut trouver dans cette source : http://www.vbfrance.com/codes/CREER-FICHIER-TEXTE-AVEC-LISTE-TOUS-FICHIERS-REPERTOIRE_5430.aspx)
Rien de bien compliqué en soi, mais là, petit souci :
Il y a comme propriété de l'objet .DateCreated, etc ... Mais pas les dimensions de mon objet ! (le .Size est le poids de l'objet en fait).
Dans l'explorateur XP, tout bêtement, je peux l'afficher avec un simple clic droit.
Vous savez si en VB6, je peux utiliser un objet qui me permettrait de récupérer simplement cette dimension ?
J'ai trouvé sur VBFrance une autre source, http://www.vbfrance.com/codes/RECUPERER-DIMENSIONS-IMAGE-JPEG-PSD-PHOTOSHOP-SANS-OCX_39792.aspx, qui me permet de récupérer ces données pour un fichier .jpeg. Ca fonctionne très bien, mais je me demandais s'il existait la même chose pour récupérer les infos quelque soit le type de fichier (ça ne fonctionne pas pour un .gif par ex).
Je ne me sens pas capable encore de modifier l'API ^^
Je suppose que si l'explorateur le fait, il doit bien avoir une .dll ou une API quelconque que je puisse utiliser.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 26 févr. 2007 à 10:21
615490
jmfmarques : FileLen ne correspond pas parce que, je ne connaissais pas cette fonction . Mais en plus, ça me remonte en fait le poids du fichier, en octet, et ce que je cherche à obtenir, ce sont les dimensions d'un fichier image (du genre : Dimension 800 x 600)
=333139 casy : Je ne me sens pas encore de me plonger dans des trucs aussi compliqués pour mon petite cerveau ^^
PCPT : Je n'ai vu ta procédure que ce matin, elle semble convenir à ce que je voulais obtenir puisque je me suis débrouillé en bidouillant un truc qui y ressemble, et qui n'est pas forcément très propre, mais bon ^^
J'ai en fait mis une picturebox en invisible sur ma feuille, et en autosize. J'ai passé je ne sais plus quelle propriété en Pixel plutôt que Twip. Et hop, je précharge d'abord mon image dans le picturebox et avec les propriété ScaleWidth et ScaleHeight (que j'ai découvert hier dans la journée ... Je devrais utiliser des PictureBox beaucoup plus souvent ), j'ai les infos qu'il me faut. Ca ne me pose pas de réels souvis parceque je ne veux les dimensions que d'une image que j'affiche, pas comme dans un explorateur ou j'aurais les dimensions de tout un ensemble de fichier.
Enfin, obligé de passer par là pour gérer mon affichage, tsss ... Vous ne connaitriez pas un objet qui possède à la fois les propriétés ScaleWidth et ScaleHeight d'un PictureBox, et la propriété Strech d'une ImageBox ?
En tous cas, merci pour les pistes et à une prochaine question !
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 25 févr. 2007 à 19:26
salut,
euh.. tu veux juste les dimensions?
si oui, voilà une proc sur mesure ;)
Option Explicit
Private Sub Form_Load()
Dim lWidth&, lHeight&
Call GetPicSize(Me, "C:\tmp1.jpg", lWidth, lHeight, vbPixels)
MsgBox lWidth & " x " & lHeight
Unload Me
End Sub
Sub GetPicSize(Frm As Form, sPath As String, ByRef lWidth As Long, ByRef lHeight As Long, Optional iScale As Integer = vbTwips)
Dim ObjStd As New StdPicture
Set ObjStd = LoadPicture(sPath)
lWidth = Me.ScaleX(ObjStd.Width, vbHimetric,
iScale)
lHeight = Me.ScaleY(ObjStd.Height, vbHimetric,
iScale)
Set ObjStd = Nothing
End Sub
sinon regarde sur ce site : http://edais.mvps.org/Code/Libraries/index.html, à défaut d'y trouver exactement ce que tu cherche, tu trouveras du code pour chaque format, ainsi que le format de l'header de chaque type de fichier.
Tu peux y apprendre par exmple que les dimentions d'un gif se trouve sur le 7 et 8ème octet pour la largeur et 9 et 10 ème octet pour la hauteur.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 26 févr. 2007 à 11:02
Bonjour Molenn;
Non, un tel objet n'existe pas
Existe par contre la méthode PaintPicture qui te permet de faire celà. Il te faudra simplement l'accompagner d'un petit calcul arithmétique pour conserver à ton image ses proportions (hauteur/largeur)