|
|
@ -24,7 +24,7 @@ export function getPngMetadata(file) { |
|
|
|
const length = dataView.getUint32(offset); |
|
|
|
const length = dataView.getUint32(offset); |
|
|
|
// Get the chunk type
|
|
|
|
// Get the chunk type
|
|
|
|
const type = String.fromCharCode(...pngData.slice(offset + 4, offset + 8)); |
|
|
|
const type = String.fromCharCode(...pngData.slice(offset + 4, offset + 8)); |
|
|
|
if (type === "tEXt" || type == "comf") { |
|
|
|
if (type === "tEXt" || type == "comf" || type === "iTXt") { |
|
|
|
// Get the keyword
|
|
|
|
// Get the keyword
|
|
|
|
let keyword_end = offset + 8; |
|
|
|
let keyword_end = offset + 8; |
|
|
|
while (pngData[keyword_end] !== 0) { |
|
|
|
while (pngData[keyword_end] !== 0) { |
|
|
@ -33,7 +33,7 @@ export function getPngMetadata(file) { |
|
|
|
const keyword = String.fromCharCode(...pngData.slice(offset + 8, keyword_end)); |
|
|
|
const keyword = String.fromCharCode(...pngData.slice(offset + 8, keyword_end)); |
|
|
|
// Get the text
|
|
|
|
// Get the text
|
|
|
|
const contentArraySegment = pngData.slice(keyword_end + 1, offset + 8 + length); |
|
|
|
const contentArraySegment = pngData.slice(keyword_end + 1, offset + 8 + length); |
|
|
|
const contentJson = Array.from(contentArraySegment).map(s=>String.fromCharCode(s)).join('') |
|
|
|
const contentJson = new TextDecoder("utf-8").decode(contentArraySegment); |
|
|
|
txt_chunks[keyword] = contentJson; |
|
|
|
txt_chunks[keyword] = contentJson; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|