Accueil > Forum > > > > extraire résolution d'image
extraire résolution d'image
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ée 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
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
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
Travailler image de grande taille [ par papy27 ]
Bonjour, Je viens vers vous pour trouver conseils et aide sur le travail d'images de grande tailles. TOut d'abord, une petite explication: Je dois
Extraire la taille des repertoires Outlook [ par viviane44 ]
Bonjour, Je cherche une solution pour extraire la taille des différents repertoires dans Outlook sans avoir à balayer tous les mails (Méthode basée su
[vb2005] taille image [ par lex1111 ]
Je voulais savoir comment faire pour connaitre la taille d'une image sur le disque dur sans la charger dans un picturebox
Afficher la résolution d'une image ! [ par Clad49 ]
Salut j'aurai aimer savoir si il était possible d'afficher la résolution d'une image (ex :1024x768)et si oui comment faire ?Mici d'avance ;)Clad
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
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
|