none
Ler informações de uma imagem - Exif metadados RRS feed

  • Pergunta

  • Olá Senhores!!

    Recorro a vocês pois estou com um pepino na mão..

    Na minha empresa existe um prgrama antigo pra caramba que le as informações das imagens, atraves de uma ocx da leadtools. entrtetanto preciso recriar tal funcionalidade, so que nao encontrei nada concreto na rede.

    Alguem consegue me dar um Norte?

    Obrigado!!!!!!

     

     

     

     


    --------------- Cléber Visual Studio C#
    segunda-feira, 30 de maio de 2011 19:29

Respostas

  • Já viste a classe http://msdn.microsoft.com/library/system.drawing.image.aspx? Vê as propriedades PropertyIdList e PropertyItem.
    Paulo Morgado
    segunda-feira, 30 de maio de 2011 22:52
  • Olá

    Consegui da seguinte forma...

     

    string jpegPath = "C:\\207251A.jpg"; 
          string jpegDirectory = Path.GetDirectoryName(jpegPath);
          string jpegFileName = Path.GetFileNameWithoutExtension(jpegPath);
    
          if (File.Exists(jpegPath))
          {
            using (Stream jpegStreamIn = File.Open(jpegPath, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
            {
              
              BitmapSource img = BitmapFrame.Create(jpegStreamIn);
              BitmapMetadata meta = (BitmapMetadata)img.Metadata;
                       
              //le as propriedades
              string ApplicationName = meta.ApplicationName;
              //string Author = meta.Author; /* AQUI DA ERRO */
    
              
              string CameraManufacturer = meta.CameraManufacturer;
              string CameraModel = meta.CameraModel;
              string Comment = meta.Comment;
              string CanFreeze = meta.CanFreeze.ToString(); // do tipo bool
              string Copyright = meta.Copyright;
              string DateTaken = meta.DateTaken;
              string DependencyObjectType = meta.DependencyObjectType.ToString();
              string Dispatcher = meta.Dispatcher.ToString();
              string Format = meta.Format;
              string IsFixedSize = meta.IsFixedSize.ToString(); ;
              string IsFrozen = meta.IsFrozen.ToString();
              string IsReadOnly = meta.IsReadOnly.ToString();
              string IsSealed = meta.IsSealed.ToString();
              string Keywords = meta.Keywords.ToString();
              string Location = meta.Location;
              string Rating = meta.Rating.ToString();
              string Subject = meta.Subject;
              string Title = meta.Title;
    
            }
          }
    

     

    Entratanto, da alguns erros nos tipos por exemplo no Autor, da a seguinte mensagem...

    "Cannot implicitly convert type 'System.Collections.ObjectModel.ReadOnlyCollection<string>' to 'string'"

    Alguem saberia me dizer o que posso fazer??

    Obrigado!!

     


    --------------- Cléber Visual Studio C# ---------------
    • Marcado como Resposta Cléber da Rosa sexta-feira, 3 de junho de 2011 12:20
    sexta-feira, 3 de junho de 2011 12:19

Todas as Respostas

  • Já viste a classe http://msdn.microsoft.com/library/system.drawing.image.aspx? Vê as propriedades PropertyIdList e PropertyItem.
    Paulo Morgado
    segunda-feira, 30 de maio de 2011 22:52
  • Cléber,

    Já utilizou a classe abaixo?

    ExifLib - A Fast Exif Data Extractor for .NET 2.0
    http://www.codeproject.com/KB/graphics/exiflib.aspx

    Att.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com

    terça-feira, 31 de maio de 2011 03:29
    Moderador
  • Olá

    Consegui da seguinte forma...

     

    string jpegPath = "C:\\207251A.jpg"; 
          string jpegDirectory = Path.GetDirectoryName(jpegPath);
          string jpegFileName = Path.GetFileNameWithoutExtension(jpegPath);
    
          if (File.Exists(jpegPath))
          {
            using (Stream jpegStreamIn = File.Open(jpegPath, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
            {
              
              BitmapSource img = BitmapFrame.Create(jpegStreamIn);
              BitmapMetadata meta = (BitmapMetadata)img.Metadata;
                       
              //le as propriedades
              string ApplicationName = meta.ApplicationName;
              //string Author = meta.Author; /* AQUI DA ERRO */
    
              
              string CameraManufacturer = meta.CameraManufacturer;
              string CameraModel = meta.CameraModel;
              string Comment = meta.Comment;
              string CanFreeze = meta.CanFreeze.ToString(); // do tipo bool
              string Copyright = meta.Copyright;
              string DateTaken = meta.DateTaken;
              string DependencyObjectType = meta.DependencyObjectType.ToString();
              string Dispatcher = meta.Dispatcher.ToString();
              string Format = meta.Format;
              string IsFixedSize = meta.IsFixedSize.ToString(); ;
              string IsFrozen = meta.IsFrozen.ToString();
              string IsReadOnly = meta.IsReadOnly.ToString();
              string IsSealed = meta.IsSealed.ToString();
              string Keywords = meta.Keywords.ToString();
              string Location = meta.Location;
              string Rating = meta.Rating.ToString();
              string Subject = meta.Subject;
              string Title = meta.Title;
    
            }
          }
    

     

    Entratanto, da alguns erros nos tipos por exemplo no Autor, da a seguinte mensagem...

    "Cannot implicitly convert type 'System.Collections.ObjectModel.ReadOnlyCollection<string>' to 'string'"

    Alguem saberia me dizer o que posso fazer??

    Obrigado!!

     


    --------------- Cléber Visual Studio C# ---------------
    • Marcado como Resposta Cléber da Rosa sexta-feira, 3 de junho de 2011 12:20
    sexta-feira, 3 de junho de 2011 12:19