IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

lire la résolution d'un fichier JPEG dans ses EXIF


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 344
    Par défaut lire la résolution d'un fichier JPEG dans ses EXIF
    Bonjour,
    je souhaiterais lire la résolution en DPI X et Y d'un JPEG par ses EXIF avec Delphi 10.3 mais aucun des codes que j'ai trouvé ne fonctionne avec ma version de Delphi.
    Merci de votre aide.
    Bien cordialement

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 462
    Par défaut
    J'utilise depuis plusieurs versions de Delphi, 7,10 et 11.3 actuellement le CCR Exif v1.5.0 que l'on trouve ici :

    https://github.com/esmondb/ccr-exif/tree/master

    Par contre je n'ai jamais vu DPI X et Y dans les Exif des photos. Le seul cas ou cela aurait un sens et une utilité c'est pour un fichier issu d'un scanner, mais je pense que les DPI sont normalisés sur les 2 axes.

    Cette information est indispensable venant de l'imprimante pour pouvoir imprimer les images correctement, mais cela n'a rien à voir avec les Exif.

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 344
    Par défaut
    finalement je vais laisser tomber les DPI X et les DPI Y

  4. #4
    Membre actif
    Avatar de Alex64
    Homme Profil pro
    Senior . Formation : topographe
    Inscrit en
    Août 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Senior . Formation : topographe
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Août 2014
    Messages : 58
    Billets dans le blog
    1
    Par défaut
    Bonjour

    j'ai trouvé ça sur le web
    http://sylvain.fish.free.fr/JPEG_SIZ..._jpeg_size.htm

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    2 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 310
    Par défaut
    Si on veut connaître la résolution d'une image, on peut charger l'image en question dans un objet Delphi qui le permet et obtenir par ce biais, le nombre de pixels en X et Y.

    Quand aux DPI:

    Le DPI est le nombre de pixels distincts que l'on peut représenter (imprimer ou afficher) sur une ligne de 2,54cm, soit la largeur d'un pouce (inch) dans le système métrique anglais.

    Cela ne dépend donc pas simplement de l'image mais des capacités de représentation de l'image via un média (écran, imprimante, scanner, etc...)

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 344
    Par défaut
    ce n'est pas la taille de l'image que je veux connaître, ça c'est facile, c'est la résolution en DPI (nombre de pixels par pouces) qui est normalement dans les EXIF (regardez dans clic droit/propriétés/détails) sur une image JPEG scannée
    Mais l'installation du paquet que l'on m'a donné me semble trop compliqué pour moi et c'est un détail pour mon programme, l'utilisateur pouvant la rentrer manuellement donc je laisse tomber, désolé de vous avoir dérangé pour rien

  7. #7
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 940
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    La norme TIFF/EP nous dit :
    Citation Envoyé par 4.2 Image data
    The image width, i.e. horizontal or X dimension, is recorded as a binary value in the ImageWidth tag-field. The
    image width may be the shorter or longer dimension of the image, depending upon the orientation of the camera
    during image capture. The image orientation is defined by the Orientation tag-field. The image length, i.e. vertical
    or Y dimension, is recorded as a binary value in the ImageLength tag-field. The camera’s desired image output
    rendering resolution in the X-dimension, i.e. the horizontal dimension when the camera is normally oriented, is
    recorded using the XResolution tag-field, while the output resolution in the Y-dimension is recorded in the
    YResolution tag-field. The ResolutionUnits tag-value gives the units for the XResolution and YResolution values.

    These mandatory TIFF 6.0 tag-fields are typically used to determine the default size of the image on the
    screen. They do not indicate the sample spacing of the image sensor in an electronic still camera. The latter are
    given in the FocalPlaneXResolution, FocalPlaneYResolution, and FocalPlaneResolutionUnits tag-values.
    The pixel aspect ratio (ratio of the pixel width to pixel height) is determined by the ratio of the XResolution and
    YResolution values
    Les Tags concernés sont $011A et $011B pour les résolutions X et Y, et $920E, $920F, et $9210 pour celles du capteur (X, Y, unité).

    [EDIT] Et pour les lire, j'ai une unité pas finalisée (D5, portée/étendue incomplètement Lazarus puis réadaptée D11.3 en l'état) que je joins et qui s'utilise comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    procedure TForm1.Button1Click(Sender: TObject);
    var
      S: string;
      ExifDecoder: TlyExifDecoder;
      Erreur: integer;
    begin
      OpenPictureDialog1.Filter := '*.*';
     
      if OpenPictureDialog1.Execute() then
      begin
        S := OpenPictureDialog1.FileName;
     
        ExifDecoder := TlyExifDecoder.Create;
        if ExifDecoder.LoadFromFile(S, Erreur) then
        begin
     
          if ExifDecoder.HasExif then
          begin
     
            ShowMessage(ExifDecoder.TagToStr($011A));
     
          end
          else
          ShowMessage('Pas de données EXIF');
        end
        else
          ShowMessage('Erreur ' + Erreur.ToString);
        ExifDecoder.Free;
      end;
     
    end;
    Fichiers attachés Fichiers attachés
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Lire une variable d'un fichier Excel dans Access par VBA
    Par FHDLB dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/09/2017, 11h31
  2. [Lazarus] Comment afficher un fichier jpeg dans un Timage ?
    Par FroggySeven dans le forum Lazarus
    Réponses: 2
    Dernier message: 24/05/2015, 10h21
  3. Copie efficace et rapide d'un fichier jpeg dans une autre destination
    Par Marginataman dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 03/09/2011, 11h37
  4. lire les données d'un fichier text dans un vecteur
    Par kruskal21 dans le forum MATLAB
    Réponses: 5
    Dernier message: 11/01/2011, 17h52
  5. Réponses: 5
    Dernier message: 20/08/2002, 18h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo