|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : extraire résolution d'image [ Divers / Aide & Documentation ] (yan35)
Informations & options pour cette discussion
jeudi 1 juin 2006 à 02:53:21 |
extraire résolution d'image

yan35
|
Bonjour, Comment peut-on obtenir la résolution d'une image (BMP ou JPG) ? En fait, je voudrais calculer sa taille en pouces à partir de sa taille en pixels que je sais retrouver. Merci
|
|
|
jeudi 1 juin 2006 à 09:29:20 |
Re : extraire résolution d'image

Renfield
|
Réponse acceptée !
tu peux faire :
Dim oPic As StdPicture Set oPic = LoadPicture("i:\a.jpg") MsgBox Me.ScaleX(oPic.Width, vbHimetric, vbInches) & "x" & Me.ScaleY(oPic.Height, vbHimetric, vbInches)
Renfield Admin CodeS-SourceS- MVP Visual Basic
|
|
|
jeudi 1 juin 2006 à 11:24:14 |
Re : extraire résolution d'image

Gobillot
|
Réponse acceptée !
ou par les propriétés fichier:
Dim objShell As Object
Dim objFolder As Object
Dim strFileName As Object
Dim Path As Variant
Dim Filename As String
Path = "C:\WINDOWS"
Filename = "Bulles de savon.bmp"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(Path)
Set strFileName = objFolder.ParseName(Filename)
MsgBox "Largeur=" & objFolder.GetDetailsOf(strFileName, 27)
MsgBox "Hauteur=" & objFolder.GetDetailsOf(strFileName, 28)
Set strFileName = Nothing
Set objFolder = Nothing
Set objShell = Nothing
Daniel
|
|
|
jeudi 1 juin 2006 à 11:30:39 |
Re : extraire résolution d'image

Gobillot
|
Réponse acceptée !
ou par lecture directe:
Dim Largeur As Long
Dim Hauteur As Long
Dim Filename As String
Filename = "C:\WINDOWS\Bulles de savon.bmp"
Open Path & "\" & Filename For Binary As #1
Get #1, 19, Largeur
Get #1, 23, Hauteur
Close #1
MsgBox "Largeur=" & Largeur
MsgBox "Hauteur=" & Hauteur
Dim Largeur As Long
Dim Hauteur As Long
Dim Filename As String
Dim Buffer As String
Dim i As Integer
Filename = "C:\IMAGES\01.jpg"
Open Path & "\" & Filename For Binary As #1
Buffer = Space$(LOF(1))
Get #1, , Buffer
Close #1
i = InStr(Buffer, Chr$(255) & Chr$(192))
MsgBox "Largeur=" & Asc(Mid$(Buffer, i + 7, 1)) * 256 + Asc(Mid$(Buffer, i + 8, 1))
MsgBox "Hauteur=" & Asc(Mid$(Buffer, i + 5, 1)) * 256 + Asc(Mid$(Buffer, i + 6, 1))
Daniel
|
|
|
vendredi 2 juin 2006 à 00:21:27 |
Re : extraire résolution d'image

yan35
|
Merci à Renfield et Gobillot pour leur aide. Ca fonctionne, mais j'ai mal posé ma question. En fait ce que je veux obtenir c'est la résolution horizontale ou verticale d'une image et non sa hauteur et largeur. Ceci pour convertir ses dimensions connues de pixels en pouces puis points en faisant : largeur en Px / résolution horizontale = largeur en pouces ex: 444 px 300 1,48" comme l'info que l'on obtient en cliquant sur propriété d'un fichier image dans l'explorateur. J'ai bien sûr essayé d'utiliser Me.scaleX et scaleY pour obtenir des pouces, puis le rapport pixels / pouces pour obtenir la résolution mais ça ne marche pas. En fait, j'obtiens la résolution de l'écran mais pas de l'image. Je sais que dans BITMAPINFOHEADER pour 1 BMP on a 1 info Pixels par mètre à l'horizontale et verticale mais les doc indiquent "notion pour imprimante" et en + elle n'est pas toujours servie, je ne crois donc pas que ce soit la bonne piste ....
Donc si quelqu'un a un truc pour obtenir cette info. Merci
|
|
|
vendredi 2 juin 2006 à 00:47:31 |
Re : extraire résolution d'image

Gobillot
|
Réponse acceptée !
en BMP position 39 et 43
par exemple 80 0C 00 00 --> &HC80 = 3200 pixels par mètre
32,00 * 2.54 = 81 ppp
si zéro par défaut 72 pour l'imprimante, 96 pour l'écran
Daniel
|
|
|
vendredi 2 juin 2006 à 01:33:09 |
Re : extraire résolution d'image

Gobillot
|
en JPG c'est tout au début en FF E0 position 16 et 18 sur 2 caractères
à vérifier parce que je viens juste de le trouver en comparant 2 images.
si je reviens à mon exemple 3200 pixels par mètres
soit 32 pixels par cm
donc une image de 640 pixels donnera sur l'imprimante (à 72 dpi) une taille de 20 cm
Daniel
|
|
|
vendredi 2 juin 2006 à 19:21:03 |
Re : extraire résolution d'image

yan35
|
Merci de tes réponses Gobillot, c'est très sympa de répondre aussi vite à cette heure de la nuit. Aujourd'hui j'ai été surbooked, je n'ai donc pas testé ce que tu m'as dit mais je vais regardé. En tout cas ça me semble bien répondre. Je ne suis pas 1 virtuose de la lecture hexa mais je sais faire les conversions par contre je n'ai pas compris, dans 1 premier tps, le passage dans ton exemple de 80 0C 00 00 à &HC80 ensuite ça va. (&H je sais) Quoiqu'il en soit MERCI
|
|
|
samedi 3 juin 2006 à 02:09:35 |
Re : extraire résolution d'image

Gobillot
|
Réponse acceptée !
Salut, oui je sais toujours aussi tard ...
80 0C 00 00 c'est un long sur 4 octets avec l'octet faible au début (Little indian)
donc faut le retourner 00 00 0C 80 --> &H00000C80
mais bon c'est pas la peine, il suffit de le lire directement dans un Long
Get #1, 19, Largeur
pour JPG c'est différent c'est en Big indian sur 2 octets
d'ailleurs c'est pour cela que me suis trompé, c'est plutôt en position 15 et 17:
FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 C8 00 C8 00 00 FF FE
00
10
--> Longueur = 16 (sans le FFE0)
4A 46 49 46 00 --> JFIF (la signature en chaîne ASCIIZ)
01 01 --> version 1.1
01
--> codage en pixels (important: je sais pas s'il y a
d'autres possibilités)
00
C8
--> résolution X = 200
00
C8
--> résolution Y = 200
00
00
--> c'est pour les miniatures
on ne peut donc pas le lire directement, il faut calculer
&H00 * 256 + &HC8
ce que j'avais fait ici:
Asc(Mid$(Buffer, i + 7, 1)) * 256 + Asc(Mid$(Buffer, i + 8, 1))
Daniel
|
|
|
samedi 3 juin 2006 à 12:43:29 |
Re : extraire résolution d'image

yan35
|
Un très grand Merci à Gobillot, c'est exactement ce qu'il me fallait, je vais tester tout ça.
|
|
|
Cette discussion est classé dans : taille, image, extraire, résolution
Répondre à ce message
Sujets en rapport avec ce message
Résolution d'une Image(Taille) [ par MEGATRIX ]
J'ai une image chargée dans un controle image comment je pourai connaitre la taille de l'image chargée dans ce controle, jne veux pas la taille du con
Résolution d'une Image(Taille) [ par MEGATRIX ]
J'ai une image chargée dans un controle image comment je pourai connaitre la taille de l'image chargée dans ce controle, jne veux pas la taille du con
Taille d'un controle [ par MorpionMx ]
Bonsoir, J'aurais aimé savoir comment faire pour qu'un controle ait une taille fixe, quelque soit la résolution de l'écran En fait, j'ai un control
Résolution et taille d'une image [ par dany108 ]
Bonjour à tous,j'aimerai lire la taille et la résolution d'une image depuis mon appli mais sans passer par par un contrôle Kodak ou machin chose comme
taille d'image dans une picture box [ par rachidkadi ]
Bonjour,je suis nouveaux sur le site, veuillez m'escuser si la forme d'y est pas le temps pour moi de m'adapter Merci d'avance.je souhaite mettre une
la résolution d'une image en DPI [ par siyassine ]
(sous VB6)Bonjour à tous !!Ma question est : comment faire, pour avoir la résolution d'une image en DPI <br
Image et Résolution [ par dglaneuville ]
Bonjour, j'aborde la programmation DirectX depuis peu et alors que je pensais avoir bien avancé, je bute sur un soucis à priori simple : Résolution é
Agrandir la taille d'une image [ par ymas00 ]
Bonjour à tous,J'ai un petit souci au moment d'enregistrer une image avec une taille plus grande que l'origine.je cherche une méthode pour agrandir la
Modifier la résolution d'une image. [ par rammstein681 ]
Bonjour,Je cherche un code qui permet de modifier la résolution d'une image (passé de 96 à 300 DPI par exemple).Merci d'avance pour votre aideOlivier.
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC Touch HD
Entre 25€ et 605€
|