21 lines
1.0 KiB
JavaScript
21 lines
1.0 KiB
JavaScript
// Metro module 4821 (f4822).
|
|
import Module4807 from "./Module4807";
|
|
import { readIfd, get0thIfdOffset } from "./readTag";
|
|
import { IFD_TYPE_0TH, IFD_TYPE_EXIF, IFD_TYPE_GPS, IFD_TYPE_INTEROPERABILITY } from "./Module4823";
|
|
import { objectAssign } from "./Module4802";
|
|
let c2963_3 = "Exif IFD Pointer";
|
|
let c2963_4 = "GPS Info IFD Pointer";
|
|
let c2963_5 = "Interoperability IFD Pointer";
|
|
export default {
|
|
read: function read(a0, a1, a2) {
|
|
const byteOrder = Module4807.getByteOrder(a0, a1);
|
|
const r31 = readIfd(a0, IFD_TYPE_0TH, a1, get0thIfdOffset(a0, a1, byteOrder), byteOrder, a2);
|
|
const r34 = r31[c2963_3] !== void 0 ? objectAssign(r31, readIfd(a0, IFD_TYPE_EXIF, a1, a1 + r31[c2963_3].value, byteOrder, a2)) : r31;
|
|
const r52 = r34[c2963_4] !== void 0 ? objectAssign(r34, readIfd(a0, IFD_TYPE_GPS, a1, a1 + r34[c2963_4].value, byteOrder, a2)) : r34;
|
|
return {
|
|
tags: r52[c2963_5] !== void 0 ? objectAssign(r52, readIfd(a0, IFD_TYPE_INTEROPERABILITY, a1, a1 + r52[c2963_5].value, byteOrder, a2)) : r52,
|
|
byteOrder
|
|
};
|
|
}
|
|
};
|