¿Cómo se colocan etiquetas EXIF en un JPG, teniendo el búfer jpeg sin formato en C++?
Pregunta
Estoy teniendo un pequeño problema.
Obtengo un búfer RAW char* de una cámara y necesito agregar estas etiquetas antes de poder guardarlo en el disco.Escribir el archivo en el disco y volver a leerlo no es una opción, ya que esto sucederá miles de veces.
Los datos del búfer que recibo de la cámara no contienen ninguna información EXIF, aparte del ancho, el alto y los píxeles por pulgada.
¿Algunas ideas?(C++)
Solución
Mira este PDF, en la página 20 tienes un diagrama que muestra cómo colocar o modificar tu información exif.¿Cuál es la diferencia con un archivo en disco?
¿El buffer JPEG de su cámara ya contiene una sección EXIF?
Otros consejos
¿Cual es la diferencia?¿Por qué sería diferente hacerlo en un archivo en el disco que hacerlo en la memoria?
Simplemente haga lo que sea que haga después de leer el archivo del disco.
Hasta donde yo sé, los datos EXIF en JPEG son una subparte continua del archivo.Entonces
- preparar datos EXIF en la memoria
- escribir parte del archivo JPEG hasta EXIF
- escribir EXIF preparado
- escribir el resto del archivo JPEG
Quizás quieras echar un vistazo a Exiv2 biblioteca.Sé que puede funcionar con archivos, pero supongo que también tiene funciones para trabajar con buffers de memoria.