@fdm-monster/server
Version:
FDM Monster is a bulk OctoPrint, Klipper, PrusaLink and BambuLab manager to set up, configure and monitor 3D printers. Our aim is to provide neat overview over your farm.
47 lines (46 loc) • 1.05 kB
JavaScript
//#region src/utils/image-dimensions.ts
function getImageDimensions(imageData, format) {
if (format === "PNG") return getPngDimensions(imageData);
else if (format === "JPG" || format === "JPEG") return getJpgDimensions(imageData);
return {
width: 0,
height: 0
};
}
function getPngDimensions(data) {
if (data.length < 24) return {
width: 0,
height: 0
};
return {
width: data.readUInt32BE(16),
height: data.readUInt32BE(20)
};
}
function getJpgDimensions(data) {
let offset = 2;
while (offset < data.length) {
if (data[offset] !== 255) break;
const marker = data[offset + 1];
offset += 2;
if (marker === 192 || marker === 194) {
if (offset + 5 < data.length) {
const height = data.readUInt16BE(offset + 1);
return {
width: data.readUInt16BE(offset + 3),
height
};
}
break;
}
const segmentLength = data.readUInt16BE(offset);
offset += segmentLength;
}
return {
width: 0,
height: 0
};
}
//#endregion
export { getImageDimensions };
//# sourceMappingURL=image-dimensions.js.map