Sauvegarder un bitmap en jpeg avec données exif et vignette

0/5 (4 avis)

Vue 6 599 fois - Téléchargée 724 fois

Description

La classe TImageMetaData permet de sauvegarder un bitmap en format Jpeg avec incorporation de données Exif et d'une vignette.
Les données Exif peuvent être créées de toutes pièces (ex : ajout d'une description, d'une date...) ou reprises du fichier original (Jpeg ou Tiff).
Dans la démo, seuls des fichiers jpeg peuvent être ouverts.
Les données Exif ne sont pas complètes, je n'ai repris que celles que je trouvais intéressantes pour un photographe. Il est cependant très facile d'en ajouter d'autres.

Merci d'avance pour vos commentaires(constructifs) ou vos demandes d'information.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_Ricquet Messages postés 20 Date d'inscription mardi 13 février 2007 Statut Membre Dernière intervention 30 novembre 2010
30 déc. 2008 à 13:42
Merci pour la clarté du prog favorisant l'utilisation de l'unité ImageMetaData.
Pour info, j'ai ajouté la ligne suivante à la procédure SaveToJpeg afin d'éviter plantage avec grosses images :
JpegImage.CompressionQuality:= 80; SaveOK := false;
with JpegImage do
While not saveOK and (CompressionQuality > 30) do
try SaveToStream(ImageStream);
SaveOK := true;
Except CompressionQuality := CompressionQuality -20 end;

Je me lance dans activité diaporamas, si intérréssé / partenariat, me retrouver sur site : http://pagesperso-orange.fr/Edialbum/index.htm

Eric
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 13
13 août 2008 à 03:17
A savoir que Windows utilise un emplacement différent pour le stockage de son champ "Commentaires"...
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
14 oct. 2007 à 08:21
Salut F0XI et merci pour ces fonctions en assembleur.
A +
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
14 oct. 2007 à 06:05
juste a titre d'exemple on peu ameliorer les fonctions "swap" par une seule ligne de code pour les entiers 16 et 32bits, 4 lignes pour les entiers 64bits :

function BSwap16(const a: word): word;
asm
xchg al, ah;
end;

function BSwap32(const a: integer): integer;
asm
bswap eax;
end;

function BSwap64(const a: int64): int64;
asm
mov edx, [ebp+$08];
mov eax, [ebp+$0C];
bswap eax;
bswap edx;
end;

bien que ça ne jouera pas trop sur les performances, ça reste toujours interressants de savoir profiter des instructions "rapide" pour ce genre de manip.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.