@@ -108,12 +108,6 @@ except Exception as err:
108
108
This is how to get resources from a manifest using C++.
109
109
110
110
```cpp
111
- fs::path manifest_path = current_dir / "../tests/fixtures/training.json";
112
- //fs::path certs_path = current_dir / "../tests/fixtures/es256_certs.pem";
113
- //fs::path image_path = current_dir / "../tests/fixtures/A.jpg";
114
- fs::path output_path = current_dir / "../target/example/training.jpg";
115
- fs::path thumbnail_path = current_dir / "../target/example/thumbnail.jpg";
116
-
117
111
string read_text_file(const fs::path &path)
118
112
{
119
113
ifstream file(path);
@@ -126,53 +120,62 @@ string read_text_file(const fs::path &path)
126
120
return contents.data();
127
121
}
128
122
129
- try
130
- {
131
- // load the manifest, certs, and private key
132
- /* Commenting out, because not part of resource reading
133
- string manifest_json = read_text_file(manifest_path).data();
134
-
135
- string certs = read_text_file(certs_path).data();
136
-
137
- // create a signer
138
- Signer signer = Signer(&test_signer, Es256, certs, "http://timestamp.digicert.com");
139
-
140
- auto builder = Builder(manifest_json);
141
- auto manifest_data = builder.sign(image_path, output_path, signer);
142
- */
143
-
144
- // read the new manifest and display the JSON
145
- auto reader = Reader(output_path);
146
-
147
- auto manifest_store_json = reader.json();
148
- cout << "The new manifest is " << manifest_store_json << endl;
149
-
150
- // get the active manifest
151
- json manifest_store = json::parse(manifest_store_json);
152
- if (manifest_store.contains("active_manifest"))
153
- {
154
- string active_manifest = manifest_store["active_manifest"];
155
- json &manifest = manifest_store["manifests"][active_manifest];
156
-
157
- string identifer = manifest["thumbnail"]["identifier"];
158
-
159
- reader.get_resource(identifer, thumbnail_path);
160
-
161
- cout << "thumbnail written to" << thumbnail_path << endl;
162
- }
163
- }
164
- catch (c2pa::Exception const &e)
165
- {
166
- cout << "C2PA Error: " << e.what() << endl;
167
- }
168
- catch (runtime_error const &e)
169
- {
170
- cout << "setup error" << e.what() << endl;
171
- }
172
- catch (json::parse_error const &e)
173
- {
174
- cout << "parse error " << e.what() << endl;
175
- }
123
+ int main()
124
+ {
125
+ fs::path manifest_path = current_dir / "../tests/fixtures/training.json";
126
+ //fs::path certs_path = current_dir / "../tests/fixtures/es256_certs.pem";
127
+ //fs::path image_path = current_dir / "../tests/fixtures/A.jpg";
128
+ fs::path output_path = current_dir / "../target/example/training.jpg";
129
+ fs::path thumbnail_path = current_dir / "../target/example/thumbnail.jpg";
130
+
131
+ try
132
+ {
133
+ // load the manifest, certs, and private key
134
+ /* Commenting out, because not part of resource reading
135
+ string manifest_json = read_text_file(manifest_path).data();
136
+
137
+ string certs = read_text_file(certs_path).data();
138
+
139
+ // create a signer
140
+ Signer signer = Signer(&test_signer, Es256, certs, "http://timestamp.digicert.com");
141
+
142
+ auto builder = Builder(manifest_json);
143
+ auto manifest_data = builder.sign(image_path, output_path, signer);
144
+ */
145
+
146
+ // read the new manifest and display the JSON
147
+ auto reader = Reader(output_path);
148
+
149
+ auto manifest_store_json = reader.json();
150
+ cout << "The new manifest is " << manifest_store_json << endl;
151
+
152
+ // get the active manifest
153
+ json manifest_store = json::parse(manifest_store_json);
154
+ if (manifest_store.contains("active_manifest"))
155
+ {
156
+ string active_manifest = manifest_store["active_manifest"];
157
+ json &manifest = manifest_store["manifests"][active_manifest];
158
+
159
+ string identifer = manifest["thumbnail"]["identifier"];
160
+
161
+ reader.get_resource(identifer, thumbnail_path);
162
+
163
+ cout << "thumbnail written to" << thumbnail_path << endl;
164
+ }
165
+ }
166
+ catch (c2pa::Exception const &e)
167
+ {
168
+ cout << "C2PA Error: " << e.what() << endl;
169
+ }
170
+ catch (runtime_error const &e)
171
+ {
172
+ cout << "setup error" << e.what() << endl;
173
+ }
174
+ catch (json::parse_error const &e)
175
+ {
176
+ cout << "parse error " << e.what() << endl;
177
+ }
178
+ }
176
179
```
177
180
178
181
</TabItem>
0 commit comments