cpp在图片中写入exif信息 示例
时间: 2024-02-21 19:57:58 浏览: 24
要在图片中写入EXIF信息,可以使用开源库libexif。以下是一个示例程序,演示如何使用libexif在C++中写入EXIF信息到JPEG图像中。
```cpp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libexif/exif-data.h>
int main(int argc, char** argv) {
if (argc < 2) {
printf("Usage: %s <jpeg_file>\n", argv[0]);
return 0;
}
const char* filename = argv[1];
ExifData* data = exif_data_new_from_file(filename);
if (data == NULL) {
printf("Cannot open file %s\n", filename);
return 0;
}
// 在EXIF数据中添加一个新的IFD
ExifEntry* entry = exif_entry_new();
exif_entry_initialize(entry, EXIF_TAG_USER_COMMENT);
exif_entry_set_value(entry, "My custom comment");
exif_data_add_entry(data, entry);
// 将EXIF数据写回JPEG文件
exif_data_save_data(data);
exif_data_unref(data);
printf("EXIF data written to %s\n", filename);
return 0;
}
```
在上面的示例代码中,我们首先使用`exif_data_new_from_file`函数从JPEG文件中读取EXIF数据。然后,我们创建一个新的`ExifEntry`对象,并将其初始化为用户评论的标签。我们设置该标签的值为"My custom comment"。最后,我们使用`exif_data_save_data`函数将修改后的EXIF数据写回JPEG文件中。
请注意,这只是一个简单的示例程序,实际应用中可能需要更复杂的EXIF操作。有关更多信息,请参阅libexif文档。