Project

General

Profile

RE: Why? Trying to write jpeg in memory and save to file... ยป memio.cpp

Manipulating metadata on an in-memory image - Andreas Huggel, 20 Nov 2014 12:09

 
1
// ***************************************************************** -*- C++ -*-
2
// memIo.cpp, $Rev$
3
// Sample program to print the Exif metadata of an image
4

    
5
#include <exiv2/exiv2.hpp>
6
#include <iostream>
7
#include <cassert>
8

    
9
int main(int argc, char* const argv[])
10
try {
11

    
12
    if (argc != 2) {
13
        std::cout << "Usage: " << argv[0] << " file\n";
14
        return 1;
15
    }
16

    
17
    Exiv2::DataBuf buf = Exiv2::readFile(argv[1]);
18
    Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(buf.pData_, buf.size_);
19
    image->readMetadata();
20
    Exiv2::ExifData &exifData = image->exifData();
21
    exifData["Exif.Image.Model"] = "A long model name to make the Exif metadata grow";
22
    image->writeMetadata();
23
    Exiv2::FileIo file(argv[1]);
24
    file.open();
25
    file.write(image->io());
26

    
27
    return 0;
28
}
29
catch (Exiv2::Error& e) {
30
    std::cout << "Caught Exiv2 exception '" << e.what() << "'\n";
31
    return -1;
32
}
    (1-1/1)