Accueil > > > RECUPERER LES DIMENSIONS IMAGE JPEG ET PSD (PHOTOSHOP) SANS OCX SANS API
RECUPERER LES DIMENSIONS IMAGE JPEG ET PSD (PHOTOSHOP) SANS OCX SANS API
Information sur la source
Description
Avec ce code , vous pouvez recuperer facilement les dimension Width et Height reels d'une image Jpeg sans passer par un PictureBox ou un StdPicture ou Cdib, meme pas d'api , rien.
Copiez simplement ce ptit bout de code dans un module
Utilisation :
Private Sub Command1_Click()
Dim o As SIZE
Dim ErrorH As Integer
ErrorH = JpgSize("c:\surf41.jpg", o)
If ErrorH = 0 Then
Text1 = o.cx & " x " & o.cy
Else
MsgBox GetErrorString(ErrorH)
End If
End Sub
Source
- Option Base 0
- Option Explicit
-
- 'RogerStudio
- 'JpgSize
- 'Fonction qui recupere la dimension d'un image JPG rapidement
- 'Sans control Picture ou CDib
- 'Simple ouvertur du fichier , recherche des valeurs dans l'entete.
-
- 'Entrée : Nom et chemin complet du fichier Jpg
- ' Dimension de structure SIZE
-
- 'Sortie : NULL si Reussi
- ' >0 en cas d'erreur
-
-
-
-
- 'Reference Doc : http://www.landscapeimage.com/ThumbHTML/help/exif_file_format.html
- 'http://www.w3.org/Graphics/JPEG/jfif3.pdf
- 'Travail perso de recherche sur le format JFIF Version 1.1 et 1.2
-
- Private PHeight As Long, PWidth As Long 'Resultats des recherches
- Private Free As Integer 'numero de fichier libre
- Private Temp() As Byte, Temp1() As Byte
- Private MarkerLenght As Integer 'Longeur du markeur
- Private IsJpg(1) As Byte '2 Premiers octets pour verifier l'entet du Jpg
- Private AppMarker(1) As Byte 'Structure du marker (FFD8 FFD0 FFC0 FFE1 FFE0 .... FFxx)
- Private MarkerOffset As Long 'Offset du marker
- Private Mark As Integer
-
- Private Origin As Long 'Pour la boucle Get
- Private NotFound As Boolean
-
- Private LngS As String * 4 'Phrase fixe de 4 octets pour la mise en forme Hexa
- Private IntS1 As String * 2 ' // de 2 octets
- Private IntS2 As String * 2 ' // //
- Private IntS3 As String * 2 ' // //
- Private IntS4 As String * 2 ' // //
-
-
- Private X1 As Long 'Boucles
-
- 'Psd format
- Private LngS1 As String * 8 'Phrase fixe de 8 octets pour la mise en forme Hexa
- Private PsdSignature As Long
- Private PsdVersionFormat As Integer
- Private PsdRows As Long
- Private PsdColumns As Long
-
-
-
-
- Public Type SIZE
- cx As Long
- cy As Long
- End Type
-
-
-
-
-
-
- Public Function PhotoShopFileSize(SzFileName As String, ByRef Dimension As SIZE) As Integer
- On Error GoTo Fin
- If ExistFile(SzFileName) = False Then PhotoShopFileSize = 1: Exit Function
- Free = FreeFile
-
- Open SzFileName For Binary As #Free
- Get #Free, , PsdSignature
- 'Verifie que l'entete est bien "8BPS"
- If Hex(PsdSignature) <> "53504238" Then PhotoShopFileSize = 5: Close #Free: Exit Function
-
- Get #Free, , PsdVersionFormat
-
- 'Verifie que la version est a 1
- If Hex(PsdVersionFormat) <> "100" Then PhotoShopFileSize = 6: Close #Free: Exit Function
-
- 'debu a offset 15
- Seek #Free, 15
- ReDim Temp(3)
- Get #Free, , Temp
- IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
- IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
- IntS3 = String(2 - Len(Hex(Temp(2))), "0") & Hex(Temp(2))
- IntS4 = String(2 - Len(Hex(Temp(3))), "0") & Hex(Temp(3))
- LngS1 = IntS1 & IntS2 & IntS3 & IntS4
- PHeight = Val("&H" & LngS1)
-
- Get #Free, , Temp
- IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
- IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
- IntS3 = String(2 - Len(Hex(Temp(2))), "0") & Hex(Temp(2))
- IntS4 = String(2 - Len(Hex(Temp(3))), "0") & Hex(Temp(3))
- LngS1 = IntS1 & IntS2 & IntS3 & IntS4
- PWidth = Val("&H" & LngS1)
-
- Dimension.cx = PWidth
- Dimension.cy = PHeight
- PhotoShopFileSize = 0
-
- Fin:
- Close #Free
- If Err Then PhotoShopFileSize = Err.Number
- End Function
-
-
-
-
-
- Public Function JpgSize(SzFileName As String, ByRef Dimension As SIZE) As Integer
- On Error GoTo Fin
- 'Verifie que le fichier existe
- If ExistFile(SzFileName) = False Then JpgSize = 1: Exit Function
-
- Free = FreeFile
- Open SzFileName For Binary As #Free
- Get #Free, , IsJpg 'FFD8 = Fichier Jpg
- If Hex(IsJpg(0)) <> "FF" And Hex(IsJpg(1)) <> "D8" Then JpgSize = 2: GoTo Fin
-
- 'LE fichier est bien un Jpg
- 'On recupere le premier marker
- Get #Free, , AppMarker 'Marker FFE0 ou FFE1 'Les autres fichiers ne sont pas geré pour le moment
- 'Le marker est suivi de sa longeur 2octets
- ReDim Temp(1)
- Get #Free, , Temp
- MarkerLenght = ("&H" & Hex(Temp(0)) & Hex(Temp(1)))
- MarkerOffset = 5 'C'est obligatoirement le premier marker
-
- 'A quel genre de jpg a t'on affaire ? avec Exif ou sans Exif ?
- 'FFE0 Sans exif , entete simple JFIF
- 'FFE1 Avec exif, entete Exif
-
- If Hex(AppMarker(1)) = "E0" Then 'JFIF
- 'Fichier Jfif
- 'verifie que c'est bien un Jfif, Recupere les 5 prochain bytes
- 'ca doit etre 4A 46 49 46 00
- ' J F I F 0
-
- ReDim Temp(4)
- Get #Free, , Temp
- If Hex(Temp(0)) <> "4A" Then JpgSize = 3: GoTo Fin
- If Hex(Temp(1)) <> "46" Then JpgSize = 3: GoTo Fin
- If Hex(Temp(2)) <> "49" Then JpgSize = 3: GoTo Fin
- If Hex(Temp(3)) <> "46" Then JpgSize = 3: GoTo Fin
- If Hex(Temp(4)) <> "0" Then JpgSize = 3: GoTo Fin
-
- ReDim Temp(1)
- ReDim Temp1(1)
- NotFound = True
- 'a l 'offset "MArkerLenght" , on doit avoir un FF xx puis FFxx ....
- 'Rechercher le marker FFC0
- Do
- Seek #Free, MarkerLenght + MarkerOffset
- 'Offset en cours =MarkerLenght + MarkerOffset
- Get #Free, , Temp 'recupere le marker
- MarkerOffset = Seek(1)
- Get #Free, , Temp1 'recupere la taille du marker
- MarkerLenght = ("&H" & Hex(Temp1(0)) & Hex(Temp1(1)))
- If Hex(Temp(0)) = "FF" And Hex(Temp(1)) = "C0" Then NotFound = False
-
- Loop While NotFound
- 'Marker FFC0 trouvé ! cool
-
- ReDim Temp(0)
- Get #Free, , Temp 'je ne sais pas a quoi correspond ce byte , c'est souvent 8 !
- 'mais bon passons
- ReDim Temp(1)
- 'Ici on recupere la hauteur
- Get #Free, , Temp
- IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
- IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
- LngS = IntS1 & IntS2
- PHeight = Val("&H" & LngS)
- 'et ici la longeur
- Get #Free, , Temp
- IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
- IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
- LngS = IntS1 & IntS2
- PWidth = Val("&H" & LngS)
- JpgSize = 0
- 'Fichier JFIF normal terminé
- 'Retourne 0 (pas d'erreur)
- 'Et les valeurs dans la streucture
- Dimension.cx = PWidth
- Dimension.cy = PHeight
-
-
- ElseIf Hex(AppMarker(1)) = "E1" Then 'Exif
- 'Exif presents , il faut chercher dans les marques exif ,
- 'car au markeur FFC0 , c'est la dimension de la miniaturre . et non de l'image
- 'Le numero de case est : A002 pour la longuer
- 'Le numero de case est : A003 pour la hauteur
-
-
- '****************
- 'Codage Motorola ou Intel ?
- '**************
- 'Recherche du marker "Exif"
- ReDim Temp(5)
- Origin = 0
- NotFound = True
- Do
- Origin = Origin + 1
- Get #1, Origin, Temp
- If Temp(0) = 69 And Temp(1) = 120 And Temp(2) = 105 And Temp(3) = 102 And Temp(4) = 0 And Temp(5) = 0 Then NotFound = False
- Loop While NotFound
- Origin = Origin + 6
- ReDim Temp(1)
- Get #1, Origin, Temp
- Debug.Print Temp(0)
- Debug.Print Temp(1)
- Codage = None
- If Temp(0) = 77 And Temp(1) = 77 Then Codage = Motorola
- If Temp(0) = 73 And Temp(1) = 73 Then Codage = Intel
- If Codage = None Then JpgSize = 5: GoTo Fin
-
-
-
-
- Dim Marke As Integer
- If Codage = Intel Then Marke = &HA002
- If Codage = Motorola Then Marke = &H2A0
- Origin = 1
- NotFound = True
- Do
- 'Recherche du premier marker : a002
- Get #1, Origin, Mark
- Origin = Origin + 1
- DoEvents
- If Mark = Marke Then NotFound = False
- Loop While NotFound
- 'Premier marker A002 Trouvé
-
- If Codage = Intel Then
- Origin = Origin + 7
- '4 Derniers octets de la structure de 12
- Get #1, Origin, PWidth
- Origin = Origin + 4
- ElseIf Codage = Motorola Then
- Origin = Origin + 7
- ReDim Temp(1)
- Get #1, Origin, Temp
-
- IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
- IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
- LngS = IntS1 & IntS2
- PWidth = Val("&H" & LngS)
- Origin = Origin + 4
- End If
-
- 'on recomence pour Le deuxieme
- If Codage = Intel Then Marke = &HA003
- If Codage = Motorola Then Marke = &H3A0
- Get #1, Origin, Mark
- If Mark = Marke Then
- For X1 = 1 To 3
- Get #1, , Mark
- Next X1
-
- If Codage = Intel Then
- Origin = Origin + 8
- '4 Derniers octets de la structure de 12
- Get #1, Origin, PHeight
- ElseIf Codage = Motorola Then
- Origin = Origin + 8
- ReDim Temp(1)
- Get #1, Origin, Temp
-
- IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
- IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
- LngS = IntS1 & IntS2
- PHeight = Val("&H" & LngS)
- End If
-
-
-
- Else
- JpgSize = 4: GoTo Fin
- End If
- JpgSize = 0
- 'Fichier exif terminé
- 'Retourne 0 (pas d'erreur)
- 'Et les valeurs dans la streucture
- Dimension.cx = PWidth
- Dimension.cy = PHeight
-
- End If
-
-
-
- Fin:
- Close #Free
- If Err Then JpgSize = Err.Number
- End Function
-
- Private Function ExistFile(ByVal sSpec As String) As Boolean
- On Error Resume Next
- Call FileLen(sSpec)
- ExistFile = (Err = 0)
- End Function
-
-
- Public Function GetErrorString(Index As Integer) As String
- Select Case Index
-
- Case 1: GetErrorString = "Le fichier specifié n'existe pas"
- Case 2: GetErrorString = "Le fichier specifié n'est pas un JPG"
- Case 3: GetErrorString = "LE fichier est bien un Jpg mais contient une mauvaise entete !"
- Case 4: GetErrorString = "Marqueur mal placé , non trouvé , peut etre encodage MM"
-
- End Select
- End Function
-
-
-
- 'Erreur
- '1 : Le fichier n'existe pas
- '2 : Le fichier n'est pas un JPG
- '3 : Fichier Jpg mais mauvaise entete !
- '4 : Marqueur mal placé , non trouvé , peut etre encodage MM
Option Base 0
Option Explicit
'RogerStudio
'JpgSize
'Fonction qui recupere la dimension d'un image JPG rapidement
'Sans control Picture ou CDib
'Simple ouvertur du fichier , recherche des valeurs dans l'entete.
'Entrée : Nom et chemin complet du fichier Jpg
' Dimension de structure SIZE
'Sortie : NULL si Reussi
' >0 en cas d'erreur
'Reference Doc : http://www.landscapeimage.com/ThumbHTML/help/exif_file_format.html
'http://www.w3.org/Graphics/JPEG/jfif3.pdf
'Travail perso de recherche sur le format JFIF Version 1.1 et 1.2
Private PHeight As Long, PWidth As Long 'Resultats des recherches
Private Free As Integer 'numero de fichier libre
Private Temp() As Byte, Temp1() As Byte
Private MarkerLenght As Integer 'Longeur du markeur
Private IsJpg(1) As Byte '2 Premiers octets pour verifier l'entet du Jpg
Private AppMarker(1) As Byte 'Structure du marker (FFD8 FFD0 FFC0 FFE1 FFE0 .... FFxx)
Private MarkerOffset As Long 'Offset du marker
Private Mark As Integer
Private Origin As Long 'Pour la boucle Get
Private NotFound As Boolean
Private LngS As String * 4 'Phrase fixe de 4 octets pour la mise en forme Hexa
Private IntS1 As String * 2 ' // de 2 octets
Private IntS2 As String * 2 ' // //
Private IntS3 As String * 2 ' // //
Private IntS4 As String * 2 ' // //
Private X1 As Long 'Boucles
'Psd format
Private LngS1 As String * 8 'Phrase fixe de 8 octets pour la mise en forme Hexa
Private PsdSignature As Long
Private PsdVersionFormat As Integer
Private PsdRows As Long
Private PsdColumns As Long
Public Type SIZE
cx As Long
cy As Long
End Type
Public Function PhotoShopFileSize(SzFileName As String, ByRef Dimension As SIZE) As Integer
On Error GoTo Fin
If ExistFile(SzFileName) = False Then PhotoShopFileSize = 1: Exit Function
Free = FreeFile
Open SzFileName For Binary As #Free
Get #Free, , PsdSignature
'Verifie que l'entete est bien "8BPS"
If Hex(PsdSignature) <> "53504238" Then PhotoShopFileSize = 5: Close #Free: Exit Function
Get #Free, , PsdVersionFormat
'Verifie que la version est a 1
If Hex(PsdVersionFormat) <> "100" Then PhotoShopFileSize = 6: Close #Free: Exit Function
'debu a offset 15
Seek #Free, 15
ReDim Temp(3)
Get #Free, , Temp
IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
IntS3 = String(2 - Len(Hex(Temp(2))), "0") & Hex(Temp(2))
IntS4 = String(2 - Len(Hex(Temp(3))), "0") & Hex(Temp(3))
LngS1 = IntS1 & IntS2 & IntS3 & IntS4
PHeight = Val("&H" & LngS1)
Get #Free, , Temp
IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
IntS3 = String(2 - Len(Hex(Temp(2))), "0") & Hex(Temp(2))
IntS4 = String(2 - Len(Hex(Temp(3))), "0") & Hex(Temp(3))
LngS1 = IntS1 & IntS2 & IntS3 & IntS4
PWidth = Val("&H" & LngS1)
Dimension.cx = PWidth
Dimension.cy = PHeight
PhotoShopFileSize = 0
Fin:
Close #Free
If Err Then PhotoShopFileSize = Err.Number
End Function
Public Function JpgSize(SzFileName As String, ByRef Dimension As SIZE) As Integer
On Error GoTo Fin
'Verifie que le fichier existe
If ExistFile(SzFileName) = False Then JpgSize = 1: Exit Function
Free = FreeFile
Open SzFileName For Binary As #Free
Get #Free, , IsJpg 'FFD8 = Fichier Jpg
If Hex(IsJpg(0)) <> "FF" And Hex(IsJpg(1)) <> "D8" Then JpgSize = 2: GoTo Fin
'LE fichier est bien un Jpg
'On recupere le premier marker
Get #Free, , AppMarker 'Marker FFE0 ou FFE1 'Les autres fichiers ne sont pas geré pour le moment
'Le marker est suivi de sa longeur 2octets
ReDim Temp(1)
Get #Free, , Temp
MarkerLenght = ("&H" & Hex(Temp(0)) & Hex(Temp(1)))
MarkerOffset = 5 'C'est obligatoirement le premier marker
'A quel genre de jpg a t'on affaire ? avec Exif ou sans Exif ?
'FFE0 Sans exif , entete simple JFIF
'FFE1 Avec exif, entete Exif
If Hex(AppMarker(1)) = "E0" Then 'JFIF
'Fichier Jfif
'verifie que c'est bien un Jfif, Recupere les 5 prochain bytes
'ca doit etre 4A 46 49 46 00
' J F I F 0
ReDim Temp(4)
Get #Free, , Temp
If Hex(Temp(0)) <> "4A" Then JpgSize = 3: GoTo Fin
If Hex(Temp(1)) <> "46" Then JpgSize = 3: GoTo Fin
If Hex(Temp(2)) <> "49" Then JpgSize = 3: GoTo Fin
If Hex(Temp(3)) <> "46" Then JpgSize = 3: GoTo Fin
If Hex(Temp(4)) <> "0" Then JpgSize = 3: GoTo Fin
ReDim Temp(1)
ReDim Temp1(1)
NotFound = True
'a l 'offset "MArkerLenght" , on doit avoir un FF xx puis FFxx ....
'Rechercher le marker FFC0
Do
Seek #Free, MarkerLenght + MarkerOffset
'Offset en cours =MarkerLenght + MarkerOffset
Get #Free, , Temp 'recupere le marker
MarkerOffset = Seek(1)
Get #Free, , Temp1 'recupere la taille du marker
MarkerLenght = ("&H" & Hex(Temp1(0)) & Hex(Temp1(1)))
If Hex(Temp(0)) = "FF" And Hex(Temp(1)) = "C0" Then NotFound = False
Loop While NotFound
'Marker FFC0 trouvé ! cool
ReDim Temp(0)
Get #Free, , Temp 'je ne sais pas a quoi correspond ce byte , c'est souvent 8 !
'mais bon passons
ReDim Temp(1)
'Ici on recupere la hauteur
Get #Free, , Temp
IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
LngS = IntS1 & IntS2
PHeight = Val("&H" & LngS)
'et ici la longeur
Get #Free, , Temp
IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
LngS = IntS1 & IntS2
PWidth = Val("&H" & LngS)
JpgSize = 0
'Fichier JFIF normal terminé
'Retourne 0 (pas d'erreur)
'Et les valeurs dans la streucture
Dimension.cx = PWidth
Dimension.cy = PHeight
ElseIf Hex(AppMarker(1)) = "E1" Then 'Exif
'Exif presents , il faut chercher dans les marques exif ,
'car au markeur FFC0 , c'est la dimension de la miniaturre . et non de l'image
'Le numero de case est : A002 pour la longuer
'Le numero de case est : A003 pour la hauteur
'****************
'Codage Motorola ou Intel ?
'**************
'Recherche du marker "Exif"
ReDim Temp(5)
Origin = 0
NotFound = True
Do
Origin = Origin + 1
Get #1, Origin, Temp
If Temp(0) = 69 And Temp(1) = 120 And Temp(2) = 105 And Temp(3) = 102 And Temp(4) = 0 And Temp(5) = 0 Then NotFound = False
Loop While NotFound
Origin = Origin + 6
ReDim Temp(1)
Get #1, Origin, Temp
Debug.Print Temp(0)
Debug.Print Temp(1)
Codage = None
If Temp(0) = 77 And Temp(1) = 77 Then Codage = Motorola
If Temp(0) = 73 And Temp(1) = 73 Then Codage = Intel
If Codage = None Then JpgSize = 5: GoTo Fin
Dim Marke As Integer
If Codage = Intel Then Marke = &HA002
If Codage = Motorola Then Marke = &H2A0
Origin = 1
NotFound = True
Do
'Recherche du premier marker : a002
Get #1, Origin, Mark
Origin = Origin + 1
DoEvents
If Mark = Marke Then NotFound = False
Loop While NotFound
'Premier marker A002 Trouvé
If Codage = Intel Then
Origin = Origin + 7
'4 Derniers octets de la structure de 12
Get #1, Origin, PWidth
Origin = Origin + 4
ElseIf Codage = Motorola Then
Origin = Origin + 7
ReDim Temp(1)
Get #1, Origin, Temp
IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
LngS = IntS1 & IntS2
PWidth = Val("&H" & LngS)
Origin = Origin + 4
End If
'on recomence pour Le deuxieme
If Codage = Intel Then Marke = &HA003
If Codage = Motorola Then Marke = &H3A0
Get #1, Origin, Mark
If Mark = Marke Then
For X1 = 1 To 3
Get #1, , Mark
Next X1
If Codage = Intel Then
Origin = Origin + 8
'4 Derniers octets de la structure de 12
Get #1, Origin, PHeight
ElseIf Codage = Motorola Then
Origin = Origin + 8
ReDim Temp(1)
Get #1, Origin, Temp
IntS1 = String(2 - Len(Hex(Temp(0))), "0") & Hex(Temp(0))
IntS2 = String(2 - Len(Hex(Temp(1))), "0") & Hex(Temp(1))
LngS = IntS1 & IntS2
PHeight = Val("&H" & LngS)
End If
Else
JpgSize = 4: GoTo Fin
End If
JpgSize = 0
'Fichier exif terminé
'Retourne 0 (pas d'erreur)
'Et les valeurs dans la streucture
Dimension.cx = PWidth
Dimension.cy = PHeight
End If
Fin:
Close #Free
If Err Then JpgSize = Err.Number
End Function
Private Function ExistFile(ByVal sSpec As String) As Boolean
On Error Resume Next
Call FileLen(sSpec)
ExistFile = (Err = 0)
End Function
Public Function GetErrorString(Index As Integer) As String
Select Case Index
Case 1: GetErrorString = "Le fichier specifié n'existe pas"
Case 2: GetErrorString = "Le fichier specifié n'est pas un JPG"
Case 3: GetErrorString = "LE fichier est bien un Jpg mais contient une mauvaise entete !"
Case 4: GetErrorString = "Marqueur mal placé , non trouvé , peut etre encodage MM"
End Select
End Function
'Erreur
'1 : Le fichier n'existe pas
'2 : Le fichier n'est pas un JPG
'3 : Fichier Jpg mais mauvaise entete !
'4 : Marqueur mal placé , non trouvé , peut etre encodage MM
Conclusion
j'ai testé sur des jpg provenant d'un apareil canon eos 350, donc avec EXIF
et sur des vielles photo jpg JFIF ver 1.1 et 1.2.
Historique
- 07 octobre 2006 21:37:53 :
- - Remplacement des #1 par #Free
- Ajout de fonction PhotoShopFileSize (Recupere les dimension d'une image Psd (Photoshop)
- 07 octobre 2006 21:39:33 :
- J'avais oublié les variables
- 16 octobre 2006 16:19:08 :
- Gestion du codage Intel et Moto (un peu bankal , mais ca marche)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
brouiller un jpg [ par vegetalain ]
Salut, je voulais savoir si il était possible de crypter une image jpg ou jpeg, et de la sauvegarder "autrement" qu'en bmp?...Les sources que j'ai pu
Partage d'image [ par jacques13 ]
Bonjour à tous, J'ai une image jpg de dimension 10000x10000 que je dois partager en 25 images de dimension 2000x2000. J'ai essayé plusieurs méthodes n
besoin d'aide pour commande ms-dos dans Visual basic 2008 express [ par jx53 ]
Bonjour, j'ai ici un code ms-dos qui prend une archive au format .zip et une image au format .jpg et qui les fusionnes. si on ouvre l'image créé, on v
inkpicture [ par alienware62 ]
Bonjour à vous, j'ai parcouru des 100n de pages web à la recherche d'informations sur l'objet inkpicture mais aucun ne dit vraiment son fonctionnement
powerpoint coller jpg [ par manulemalin13000 ]
Bonjour a tous, je cherche a coller des images jpg [u]a raison de 4 par pages [/u]que la macro irait chercher dans un dossier de mon disque dur (qui
retouche image simple [ par multimania ]
Bonjour Je cherche à l'aide de vba access d'ouvrir une image .jpg de la visualiser dans un formulaire (jusque là pas de soucis) et ensuite depuis le
convertir une image .emf en .jpg [ par dimitriour ]
bonjour,je cherche un exécutable pour convertir une image .emf en .jpg avec la possibilité de choisir le ratio de compression pour ne pas trop dégrade
redimensionner une image par imagebox et sauvegarder nouveau format en JPG [ par yannn ]
Salut a tous,pour noel, ma femme a fait l'acquisition d'un appareil reflex 10,2 mega pixel ... Une qualité incroyable de photos mais aucune sous la ba
Données gps à inscrire dans l'EXIF d'une image jpg [ par charbonn ]
BonjourJe tente d'écrire mes données gps dans les property d'une image jpg.J'ai examiné les codes sources, dont le meilleur, à mon avis, ExifWorks.Lir
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|