Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation de BitmapMetadata

4 réponses
Avatar
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+

4 réponses

Avatar
Gilles TOURREAU
Le Tue, 06 Nov 2007 15:50:37 +0100, Dolten Altgor a é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
Avatar
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" a écrit dans le message de news:

Le Tue, 06 Nov 2007 15:50:37 +0100, Dolten Altgor a
é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



Avatar
Gilles TOURREAU
Le Thu, 08 Nov 2007 11:18:09 +0100, Dolten Altgor a écrit:

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" a écrit dans le message de
news:

Le Tue, 06 Nov 2007 15:50:37 +0100, Dolten Altgor a
é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
Avatar
Dolten Altgor
> 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+