编写cpp脚本 已知经纬度将经纬度写入图像exif信息中
时间: 2023-05-12 14:05:32 浏览: 120
可以使用开源库Exiv2来实现这个功能。以下是一个简单的示例代码:
```cpp
#include <exiv2/exiv2.hpp>
int main(int argc, char** argv) {
// 读取图像文件
std::string filename = "test.jpg";
Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(filename);
if (!image.get()) {
std::cerr << "Failed to open image file: " << filename << std::endl;
return 1;
}
// 读取经纬度信息
double latitude = 31.2304; // 纬度
double longitude = 121.4737; // 经度
// 将经纬度信息写入Exif
Exiv2::ExifData exifData;
exifData["Exif.GPSInfo.GPSLatitude"] = Exiv2::Rational(latitude * 1000000, 1000000);
exifData["Exif.GPSInfo.GPSLatitudeRef"] = latitude >= 0 ? "N" : "S";
exifData["Exif.GPSInfo.GPSLongitude"] = Exiv2::Rational(longitude * 1000000, 1000000);
exifData["Exif.GPSInfo.GPSLongitudeRef"] = longitude >= 0 ? "E" : "W";
image->setExifData(exifData);
// 保存图像文件
image->writeMetadata();
return 0;
}
```
这个程序将经纬度信息写入了图像文件的Exif中。你可以根据需要修改经纬度的值和图像文件的路径。
阅读全文