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)

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

Administrateur CodeS-SourceS
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.


1 2

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.


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.