CyberChef/src/core/operations/Image.js

37 lines
891 B
JavaScript
Raw Normal View History

2017-04-29 15:44:39 -04:00
import * as ExifParser from "exif-parser";
import Utils from "../Utils.js";
/**
* Image operations.
*
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*
* @namespace
*/
const Image = {
runEXIF(input, args) {
try {
2017-05-08 12:49:13 -04:00
const bytes = Uint8Array.from(input);
const parser = ExifParser.create(bytes.buffer);
const result = parser.parse();
2017-04-29 15:44:39 -04:00
let lines = [];
for (let tagName in result.tags) {
let value = result.tags[tagName];
lines.push(`${tagName}: ${value}`);
}
2017-05-08 12:49:13 -04:00
const numTags = lines.length;
2017-04-29 15:44:39 -04:00
lines.unshift(`Found ${numTags} tags.\n`);
return lines.join("\n");
} catch (err) {
throw "Could not extract EXIF data from image: " + err;
2017-04-29 15:44:39 -04:00
}
},
};
export default Image;