begin process at 2012 02 14 23:06:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Aide & Documentation

 > 

extraire résolution d'image


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

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é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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,558 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales