récupérer la taille (x et y) d'un fichier image *.png

Résolu
Prog1001 Messages postés 56 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 22 septembre 2009 - 7 avril 2005 à 21:29
MaxSoldier Messages postés 289 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 28 février 2009 - 8 avril 2005 à 21:40
Bonjour tous le monde !

je voudrais savoir comment récupérer la taille (x et y) d'un fichier image *.png
y'a pas une API ?

Merci!

3 réponses

Prog1001 Messages postés 56 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 22 septembre 2009
7 avril 2005 à 23:05
j'y est pensé, mais je peut pas uiliser de picturebox et en +, la picturebox ne supporte pas le format png

mais on a trouvé la soluce :
on a extrait la taille en exdécimal du fichier png :

Public Type Type_Position
X As Long
Y As Long
End Type


Public Function XYFile(Path As String) As Type_Position
Dim MyStr As String


Open Path For Binary As #1
MyStr = Input(16, #1)
MyStr = Input(13, #1)
XYFile.X = CLng(OtherFormatOfStr(StrReverse(Left(MyStr, 4))))
XYFile.Y = CLng(OtherFormatOfStr(StrReverse(Mid(MyStr, 5, 4))))
Close #1
End Function


Private Function StrToBit(B As Integer) As String
Dim MyStr As String
Dim i As Integer

MyStr = "00000000"

For i = 7 To 0 Step -1
If (B / (2 ^ i)) >= 1 Then
B = B - (2 ^ i)
Mid(MyStr, 8 - i, 1) = "1"
End If
Next i

StrToBit = MyStr
End Function


Private Function BitToStr(MyStr As String, Pos As Integer) As String
Dim Tabl(8) As Currency
Dim i As Integer
Dim A As String
Dim B As Currency

B = 0
Tabl(0) = 2 ^ (Pos * 8)

For i = 1 To 7
Tabl(i) = Tabl(i - 1) * 2
Next i


For i = 1 To 8
A = Mid(MyStr, i, 1) If A 1 Then B B + Tabl(8 - i)
Next i

BitToStr = B
End Function


Private Function OtherFormatOfStr(StrEnter As String) As String
Dim i As Integer
Dim B As Integer
Dim MyStr As String
Dim Sort As Currency


For i = Len(StrEnter) To 1 Step -1
MyStr = Mid(StrEnter, i, 1)
B = Asc(MyStr)
Sort = Sort + Val(BitToStr(StrToBit(B), i - 1))
Next i


OtherFormatOfStr = Sort
End Function

*-- Mkin--*
3
MaxSoldier Messages postés 289 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 28 février 2009 2
7 avril 2005 à 21:47
Si c'est vraiment urgent, tu place une pictureBox en autosize et invisible et tu charge l'image dedans.

T'auras juste a faire :

Dim iX as integer

Dim iY as integer



iX = picPng.width

iY = picPng.height

-=Ar$£nik=-
0
MaxSoldier Messages postés 289 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 28 février 2009 2
8 avril 2005 à 21:40
Autant pour moi


Si tu peux, dépose ta source après l'avoiur fini, sa va aider beaucoup de gens

-=Ar$£nik=-
0
Rejoignez-nous