Utilisation de BitmapMetadata

Le
Dolten Altgor
Bonjour à tous,

Le code que voici me permet de lire les métadonnées d'un fichier jpg:

BitmapSource img = BitmapFrame.Create(new Uri (@"c:323709.jpg"));
BitmapMetadata meta = (BitmapMetadata)img.Metadata;

Or, j'aurais besoin d'écrire / modifier les données (par exemple, changer le
champ 'title' ou 'comment', etc) de ces mêmes métadonnées.

Merci de vos idées,
A+
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU
Le #12164011
Le Tue, 06 Nov 2007 15:50:37 +0100, Dolten Altgor

Bonjour à tous,

Le code que voici me permet de lire les métadonnées d'un fichier jpg:

BitmapSource img = BitmapFrame.Create(new Uri (@"c:323709.jpg"));
BitmapMetadata meta = (BitmapMetadata)img.Metadata;

Or, j'aurais besoin d'écrire / modifier les données (par exemple,
changer le
champ 'title' ou 'comment', etc) de ces mêmes métadonnées.

Merci de vos idées,
A+





Il me semble que la classe BitmapSource et BitmapMetadata n'existe pas
sous le .NET Framework 2.0...
Vous devriez consulter la documentation de la bibliothèque tiers que vous
utilisez ou poster votre question sur un forum destiné à l'utilisation de
cette librairie...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Dolten Altgor
Le #12163951
Effectivement, cela fonctionne sous NET 3.0. Je suis en train de lire la doc
et je vais poster sur un forum approprié.
merci

"Gilles TOURREAU"
Le Tue, 06 Nov 2007 15:50:37 +0100, Dolten Altgor écrit:


Bonjour à tous,

Le code que voici me permet de lire les métadonnées d'un fichier jpg:

BitmapSource img = BitmapFrame.Create(new Uri (@"c:323709.jpg"));
BitmapMetadata meta = (BitmapMetadata)img.Metadata;

Or, j'aurais besoin d'écrire / modifier les données (par exemple,
changer le
champ 'title' ou 'comment', etc) de ces mêmes métadonnées.

Merci de vos idées,
A+





Il me semble que la classe BitmapSource et BitmapMetadata n'existe pas
sous le .NET Framework 2.0...
Vous devriez consulter la documentation de la bibliothèque tiers que vous
utilisez ou poster votre question sur un forum destiné à l'utilisation de
cette librairie...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Gilles TOURREAU
Le #12163911
Le Thu, 08 Nov 2007 11:18:09 +0100, Dolten Altgor
Effectivement, cela fonctionne sous NET 3.0. Je suis en train de lire la
doc
et je vais poster sur un forum approprié.
merci

"Gilles TOURREAU" news:

Le Tue, 06 Nov 2007 15:50:37 +0100, Dolten Altgor écrit:


Bonjour à tous,

Le code que voici me permet de lire les métadonnées d'un fichier jpg:

BitmapSource img = BitmapFrame.Create(new Uri (@"c:323709.jpg"));
BitmapMetadata meta = (BitmapMetadata)img.Metadata;

Or, j'aurais besoin d'écrire / modifier les données (par exemple,
changer le
champ 'title' ou 'comment', etc) de ces mêmes métadonnées.

Merci de vos idées,
A+





Il me semble que la classe BitmapSource et BitmapMetadata n'existe pas
sous le .NET Framework 2.0...
Vous devriez consulter la documentation de la bibliothèque tiers que
vous
utilisez ou poster votre question sur un forum destiné à l'utilisation
de
cette librairie...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr








Autant pour moi... J'avais regardé la doc du 2.0 et pas celle du 3.0

Sous 3.0 il me semble qu'il faut faire (code à la main) :

BitmapMetadata meta;
meta = ((BitmapMetadata)img.Metadata).CloneCurrentValue();
meta.Title = "Photos de vacances";

JpegBitmapEncoder ec;
ec = new JpegBitmapEncoder();
ec.Frames.Add(BitmapFrame.Create(new Uri (@"c:323709.jpg")));

ec.Save("C:\Photo.jpg");


Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Dolten Altgor
Le #12163881
> Sous 3.0 il me semble qu'il faut faire (code à la main) :

BitmapMetadata meta;
meta = ((BitmapMetadata)img.Metadata).CloneCurrentValue();
meta.Title = "Photos de vacances";

JpegBitmapEncoder ec;
ec = new JpegBitmapEncoder();
ec.Frames.Add(BitmapFrame.Create(new Uri (@"c:323709.jpg")));

ec.Save("C:\Photo.jpg");

Cordialement
Gilles TOURREAU




Bonjour, fisant suite à tes conseils:


meta = ((BitmapMetadata)img.Metadata).CloneCurrentValue();

me donne l'erreur:
Erreur 1 Impossible de convertir implicitement le type
'System.Windows.Freezable' en 'System.Windows.Media.Imaging.BitmapMetadata'.
Une conversion explicite existe (un cast est-il manquant ?)

ec.Save ("c:\photo.jpg")

'ec' me donne l'erreur:
Erreur 2 La méthode surchargée correspondant le mieux à
'System.Windows.Media.Imaging.BitmapEncoder.Save(System.IO.Stream)' possède
des arguments non valides

et

'c:\photo.jpg" me donn 'erreur:
Argument '1': Impossible de convertir de 'string' en 'System.IO.Stream'

Par ailleurs j'ai trouvé u papier sur le net:
http://blogs.msdn.com/rwlodarc/archive/2007/07/18/using-wpf-s-inplacebitmapmetadatawriter.aspx

mais il me parait bien long pour une opératino que j'imaginais plus simple.
A+
Publicité
Poster une réponse
Anonyme