Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

WPF: determinare i metadati di un'immagine con Visual Basic 2008

Windows Presentation Foundation mette a disposizione una classe astratta chiamata BitmapDecoder, che permette di puntare ad un file di immagine, anche multi-frame, e di rappresentare il contenuto di ciascun frame.

 

Una volta ottenuto questa sorta di riferimento all’immagine, si possono ottenere i metadati dell’immagine stessa. Sappiamo, infatti, che le macchine digitali moderne o le applicazioni di fotoritocco sono in grado di aggiungere ulteriori informazioni a ciascun file (per l’appunto, i metadati). Esempi di metadati sono la data dello scatto della foto, il costruttore dell’apparecchio, commenti, autore, oggetto della foto.

 

Per ottenere questo genere di informazioni, in WPF si può utilizzare una classe chiamata BitmapMetadata; nel caso di bitmap (come .Bmp o .Jpg) si punta al singolo fotogramma costituente l’immagine, nel caso di Tiff multipagina si può ripetere l’operazione, che vedremo tra breve, su ciascun fotogramma.

 

Innanzitutto si ottiene l’istanza del BitmapDecoder corrispondente all’immagine desiderata (il file si raggiunge tramite argomento di tipo Uri):

 

        Dim decoder As BitmapDecoder = BitmapDecoder.Create(New  _

                                                            Uri("NomeImmagine.jpg", UriKind.Relative), _

                                                            BitmapCreateOptions.None, BitmapCacheOption.Default)

 

Successivamente si ottiene l’istanza dei metadati, convertendo in BitmapMetadata la proprietà Metadata del singolo fotogramma (di tipo ImageMetadata):

 

        'Istanza dei metadati. Trattandosi di una bitmap, si recupera

        'solo il primo frame.

        Dim metadata = CType(decoder.Frames(0).Metadata, BitmapMetadata)

 

Una volta ottenuta l’istanza dei metadati, si possono ottenere tutte le informazioni desiderate, come nello snippet seguente:

 

        'Costruttore macchina digitale

        Dim cameraManufacturer As String = metadata.CameraManufacturer

        'Modello macchina digitale

        Dim cameraModel As String = metadata.CameraModel

        'Data scatto

        Dim dateTaken As String = metadata.DateTaken

 

Questi sono alcuni esempi di metadati. Altre proprietà sono disponibili sono Author, Subject, Title, ApplicationName (utile per determinare l’applicazione di fotoritocco che ha modificato l’immagine), Copyright, Format (per determinare il formato dell’immagine) e Keywords (una collezione di parole descrittive).

 

Provare per credere! ;-)

 

Alessandro

Print | posted on martedì 10 marzo 2009 01:33 | Filed Under [ Visual Basic Windows Presentation Foundation ]

Powered by:
Powered By Subtext Powered By ASP.NET