2008-09-18 10 views
5

J'ai un petit problème.Comment placer des balises EXIF ​​dans un fichier JPG, avec le tampon jpeg brut en C++?

Je reçois un tampon RAW char * d'une caméra et j'ai besoin d'ajouter ces balises avant de pouvoir l'enregistrer sur le disque. Ecrire le fichier sur le disque et le relire n'est pas une option, car cela se produira des milliers de fois.

Les données de la mémoire tampon I reçu de l'appareil ne contient pas d'informations EXIF, en dehors de la largeur, la hauteur et de pixels par pouce.

Des idées? (C++)

+0

➝ regardez le XMP Metadata Toolkit (Adobe, mais quelque peu opensource), en particulier XMPFiles ... –

Répondre

4

Regardez ce PDF, à la page 20 vous avez un diagramme montrant que vous deviez placer ou modifier vos informations exif. Quelle est la différence avec un fichier sur disque?

Le tampon JPEG de votre appareil photo contient-il déjà une section EXIF?

+0

Non le tampon JPEG de la caméra ne contient pas la section EXIF ​​ – Hannes

+0

Merci. Cela aide ... il diffère de la norme JFIF – Hannes

1

Quelle est la différence? Pourquoi le faire dans un fichier sur le disque serait-il différent de le faire en mémoire?

Il suffit de faire tout ce que vous faites après avoir lu le fichier à partir du disque ..

1

Pour autant que je sais des données EXIF ​​au format JPEG est sous-partie continue du fichier. Alors

  1. préparer les données EXIF ​​dans la mémoire
  2. écrire une partie de fichier JPEG jusqu'à EXIF ​​
  3. écrire préparé EXIF ​​
  4. reste d'écriture de fichier JPEG
1

Vous pourriez vouloir jeter un coup d'oeil dans la bibliothèque Exiv2. Je sais qu'il peut fonctionner sur des fichiers mais je suppose qu'il a aussi des fonctions pour travailler sur des tampons de mémoire.

+0

Notez que Exiv2 n'est pas libre pour un usage commercial. –

+0

C'est un terrible malentendu en fait. Exiv2 est une double licence sous licence GPL et commerciale. La GPL a ses exigences - oui - mais ne vous interdit pas de l'utiliser dans des produits commerciaux. –

+0

Désolé, à ce sujet. Alors, est-ce correct d'utiliser Exiv2 dans le cadre d'un produit commercial si je ne modifie pas les fichiers sources d'Exiv2 (mais incluez ses fichiers d'en-tête de mes fichiers source et mon lien vers ses fichiers source)? –