function detect_img(encoded) {
// Create Base64 Object
var Base64={decode: atob}; // Proper Base64 decoder
// Define the string, also meaning that you need to know the file extension
//var encoded = "Base64 encoded image returned from your service";
// Decode the string
var decoded = Base64.decode(encoded);
//console.log(decoded);
// if the file extension is unknown
var extension = undefined;
// do something like this
var lowerCase = decoded.toLowerCase();
if (lowerCase.indexOf("png") !== -1) extension = "png"
else if (lowerCase.indexOf("jpg") !== -1 || lowerCase.indexOf("jpeg") !== -1)
extension = "jpg"
else extension = "tiff";
// and then to display the image
//var img = document.createElement("img");
//img.src = decoded;
// alternatively, you can do this
//img.src = "data:image/" + extension + ";base64," + encoded;
return extension;
}
imgs = {
"img.bmp": "Qk2KAwAAAAAAAIoAAAB8AAAAGAAAAAgAAAABACAAAwAAAAADAAATCwAAEwsAAAAAAAAAAAAAAAD/AAD/AAD/AAAAAAAA/0JHUnMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAA////////////////UE5H/1BOR/9QTkf/UE5H////////////UE5H/////////////////1BOR///////UE5H////////////////////////////////////////////////////////////UE5H/////////////////1BOR///////UE5H/////////////////1BOR///////UE5H////////////////////////////////////////////////////////////UE5H/////////////////1BOR///////UE5H/////////////////1BOR///////UE5H////////////////////////////////////////////////////////////UE5H/1BOR/9QTkf/UE5H////////////UE5H/////////////////1BOR///////UE5H/1BOR/9QTkf/UE5H////////////////////////////////////////////UE5H/////////////////1BOR///////UE5H//////9QTkf//////1BOR///////UE5H/////////////////1BOR///////////////////////////////////////UE5H/////////////////1BOR///////UE5H/1BOR///////UE5H/1BOR///////UE5H/////////////////1BOR///////////////////////////////////////UE5H/1BOR/9QTkf/UE5H////////////UE5H/////////////////1BOR///////UE5H/1BOR/9QTkf/UE5H////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////",
"img.gif": "R0lGODlhGAAIAIABACYmJv///yH+A1BORwAh+QQBCgABACwAAAAAGAAIAAACHYyPqXvgBoJ7rNkYa8pXb/lglMdhkoeUJ4eCmckUADs=",
"img.jpeg": "/9j/4AAQSkZJRgABAQEASABIAAD//gAFUE5H/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8IAEQgACAAYAwERAAIRAQMRAf/EABYAAAMAAAAAAAAAAAAAAAAAAAQFB//EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAawAjI//xAAZEAEAAwEBAAAAAAAAAAAAAAAEAQMFAgb/2gAIAQEAAQUC9G/tCWxZntC2ydz/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AX//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AX//xAAkEAACAgEDAgcAAAAAAAAAAAABAwIRBAASIQVRFCIxMkFDUv/aAAgBAQAGPwJasN07hS3LiySqkchAAkRzGxvo9rrXT05+WEY7A6WyXUmLEBavs9WH3Gj+q+NQgZmb5OdFsPEndCAM9lpqhGgvzcHkd+f/xAAZEAEBAQEBAQAAAAAAAAAAAAABESEAMYH/2gAIAQEAAT8hTB+CdTAxrVHIBoCkAGdpx9VC8XbL7snT5jZ3b7//2gAMAwEAAgADAAAAEBJ//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxB//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxB//8QAGBABAAMBAAAAAAAAAAAAAAAAAQARITH/2gAIAQEAAT8QuOimHFedNNz6rOMpcMA7FYGDCS91tSxBSnIxf//Z",
"img.png": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAICAYAAADjoT9jAAAAXUlEQVQoz7VRwQ0AIQgTwyzdf54u471IGkIUTa4vi0JbHONnmBIASzlJi3qcM9cefVMiCwQHsPRO66cEsxuVpHUGZvguxTFyo8crp7cuq/+4XtHrmvzFbYhkwSr9B/CFOdb5KVaaAAAAAElFTkSuQmCC",
"img.tiff": "SUkqAAgDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmJib/JiYm/yYmJv8mJib/JiYm/wAAAAAmJib/AAAAACYmJv8mJib/JiYm/yYmJv8AAAAAJiYm/yYmJv8mJib/JiYm/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYmJv8AAAAAAAAAAAAAAAAmJib/AAAAACYmJv8AAAAAAAAAAAAAAAAAAAAAJiYm/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYmJv8AAAAAAAAAAAAAAAAmJib/AAAAACYmJv8AAAAAAAAAAAAAAAAAAAAAJiYm/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYmJv8AAAAAAAAAAAAAAAAmJib/AAAAACYmJv8mJib/JiYm/wAAAAAAAAAAJiYm/yYmJv8mJib/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYmJv8AAAAAAAAAAAAAAAAmJib/AAAAACYmJv8AAAAAAAAAAAAAAAAAAAAAJiYm/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYmJv8AAAAAAAAAAAAAAAAmJib/AAAAACYmJv8AAAAAAAAAAAAAAAAAAAAAJiYm/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYmJv8AAAAAAAAAAAAAAAAmJib/AAAAACYmJv8AAAAAAAAAAAAAAAAAAAAAJiYm/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAABAwABAAAAGAAAAAEBAwABAAAACAAAAAIBAwAEAAAAAgQAAAMBAwABAAAAAQAAAAYBAwABAAAAAgAAAA0BAgA7AAAAEgQAAA4BAgAEAAAAUE5HABEBBAABAAAACAAAABIBAwABAAAAAQAAABUBAwABAAAABAAAABYBAwABAAAAgAAAABcBBAABAAAAAAMAABoBBQABAAAA8gMAABsBBQABAAAA+gMAABwBAwABAAAAAQAAAB0BAgAHAAAATgQAACgBAwABAAAAAgAAAFIBAwABAAAAAQAAAFMBAwAEAAAACgQAAAAAAABIAAAAAQAAAEgAAAABAAAACAAIAAgACAABAAEAAQABAEM6XFVzZXJzXGdyZWdvXFByb2plY3RzXFNPIHRlc3RcYmFzZXI2NGltZ19kZXRlY3RcaW1nLnRpZmYAAE96YWRqZQA="
}
for (const [name, base64data] of Object.entries(imgs)) {
const header = Buffer.from(base64data, "base64")
.slice(0, 16)
.filter(c => 32 <= c && c <= 126)
.toString("ascii")
;
console.log(name)
console.log(" header:", header)
console.log(" deteted:", detect_img(base64data))
}