@realsee/hdr-toolbox 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -9
- package/dist/xmp.d.ts.map +1 -1
- package/dist/xmp.js +42 -15
- package/dist/xmp.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,18 +26,18 @@ node dist/cli.js --help
|
|
|
26
26
|
|
|
27
27
|
```json
|
|
28
28
|
{
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"gamma":
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
29
|
+
"max_content_boost": 813.30419921875,
|
|
30
|
+
"min_content_boost": 1,
|
|
31
|
+
"gamma": 1,
|
|
32
|
+
"offset_sdr": 0,
|
|
33
|
+
"offset_hdr": 0,
|
|
34
|
+
"hdr_capacity_min": 1,
|
|
35
|
+
"hdr_capacity_max": 1000,
|
|
36
|
+
"use_base_color_space": true
|
|
37
37
|
}
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
写入 XMP 时,`
|
|
40
|
+
写入 JSON 时使用下划线(snake_case)key,数值和布尔值都写成原生 JSON 类型。读取时同时兼容下划线和驼峰(camelCase,如 `maxContentBoost`)两种写法,方便兼容旧文件;数值也接受字符串形式(如 `"1"`、`"1.0"`),会按数字解析。写入 XMP 时,`max_content_boost`、`min_content_boost`、`hdr_capacity_min` 和 `hdr_capacity_max` 会自动转换为标准要求的 `log2` 值。分解时,`.json` 输出线性值(下划线 key),`.xmp` 输出标准 XMP。
|
|
41
41
|
|
|
42
42
|
## CLI
|
|
43
43
|
|
package/dist/xmp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xmp.d.ts","sourceRoot":"","sources":["../src/xmp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,YAAY,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"xmp.d.ts","sourceRoot":"","sources":["../src/xmp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,YAAY,mCAAmC,CAAC;AAyD7D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAsCpE;AAiCD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAqB1D;AAMD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,aAAa,GAAG,MAAM,CAKnE;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAI9D;AAUD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAM5E;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3F"}
|
package/dist/xmp.js
CHANGED
|
@@ -12,6 +12,26 @@ const defaults = {
|
|
|
12
12
|
hdrCapacityMax: 1,
|
|
13
13
|
useBaseColorSpace: true,
|
|
14
14
|
};
|
|
15
|
+
const snakeCaseKeys = {
|
|
16
|
+
maxContentBoost: "max_content_boost",
|
|
17
|
+
minContentBoost: "min_content_boost",
|
|
18
|
+
gamma: "gamma",
|
|
19
|
+
offsetSdr: "offset_sdr",
|
|
20
|
+
offsetHdr: "offset_hdr",
|
|
21
|
+
hdrCapacityMin: "hdr_capacity_min",
|
|
22
|
+
hdrCapacityMax: "hdr_capacity_max",
|
|
23
|
+
useBaseColorSpace: "use_base_color_space",
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Reads a gain map config field by its snake_case JSON key, falling back to
|
|
27
|
+
* the legacy camelCase key for backward compatibility with older config files.
|
|
28
|
+
* Config input only ever comes from `JSON.parse` or from an in-memory
|
|
29
|
+
* `GainMapConfig`, so `in` cannot match an inherited property.
|
|
30
|
+
*/
|
|
31
|
+
function jsonField(input, key) {
|
|
32
|
+
const snakeCaseKey = snakeCaseKeys[key];
|
|
33
|
+
return snakeCaseKey in input ? input[snakeCaseKey] : input[key];
|
|
34
|
+
}
|
|
15
35
|
function finiteNumber(value, name, fallback) {
|
|
16
36
|
if (value === undefined && fallback !== undefined)
|
|
17
37
|
return fallback;
|
|
@@ -34,29 +54,29 @@ export function normalizeGainMapConfig(value) {
|
|
|
34
54
|
throw new Error("Gain map config must be an object.");
|
|
35
55
|
const input = value;
|
|
36
56
|
const config = {
|
|
37
|
-
maxContentBoost: finiteNumber(input
|
|
38
|
-
minContentBoost: finiteNumber(input
|
|
39
|
-
gamma: finiteNumber(input
|
|
40
|
-
offsetSdr: finiteNumber(input
|
|
41
|
-
offsetHdr: finiteNumber(input
|
|
42
|
-
hdrCapacityMin: finiteNumber(input
|
|
43
|
-
hdrCapacityMax: finiteNumber(input
|
|
44
|
-
useBaseColorSpace: booleanValue(input
|
|
57
|
+
maxContentBoost: finiteNumber(jsonField(input, "maxContentBoost"), "max_content_boost"),
|
|
58
|
+
minContentBoost: finiteNumber(jsonField(input, "minContentBoost"), "min_content_boost", defaults.minContentBoost),
|
|
59
|
+
gamma: finiteNumber(jsonField(input, "gamma"), "gamma", defaults.gamma),
|
|
60
|
+
offsetSdr: finiteNumber(jsonField(input, "offsetSdr"), "offset_sdr", defaults.offsetSdr),
|
|
61
|
+
offsetHdr: finiteNumber(jsonField(input, "offsetHdr"), "offset_hdr", defaults.offsetHdr),
|
|
62
|
+
hdrCapacityMin: finiteNumber(jsonField(input, "hdrCapacityMin"), "hdr_capacity_min", defaults.hdrCapacityMin),
|
|
63
|
+
hdrCapacityMax: finiteNumber(jsonField(input, "hdrCapacityMax"), "hdr_capacity_max"),
|
|
64
|
+
useBaseColorSpace: booleanValue(jsonField(input, "useBaseColorSpace"), defaults.useBaseColorSpace),
|
|
45
65
|
};
|
|
46
66
|
if (config.maxContentBoost < 1)
|
|
47
|
-
throw new Error("
|
|
67
|
+
throw new Error("max_content_boost must be >= 1.");
|
|
48
68
|
if (config.minContentBoost <= 0 || config.minContentBoost > 1)
|
|
49
|
-
throw new Error("
|
|
69
|
+
throw new Error("min_content_boost must be > 0 and <= 1.");
|
|
50
70
|
if (config.minContentBoost > config.maxContentBoost)
|
|
51
|
-
throw new Error("
|
|
71
|
+
throw new Error("min_content_boost must be <= max_content_boost.");
|
|
52
72
|
if (config.gamma <= 0)
|
|
53
73
|
throw new Error("gamma must be > 0.");
|
|
54
74
|
if (config.offsetSdr < 0 || config.offsetHdr < 0)
|
|
55
|
-
throw new Error("
|
|
75
|
+
throw new Error("offset_sdr and offset_hdr must be >= 0.");
|
|
56
76
|
if (config.hdrCapacityMin < 1)
|
|
57
|
-
throw new Error("
|
|
77
|
+
throw new Error("hdr_capacity_min must be >= 1.");
|
|
58
78
|
if (config.hdrCapacityMax <= config.hdrCapacityMin)
|
|
59
|
-
throw new Error("
|
|
79
|
+
throw new Error("hdr_capacity_max must be greater than hdr_capacity_min.");
|
|
60
80
|
return config;
|
|
61
81
|
}
|
|
62
82
|
function propertyValues(xml, name) {
|
|
@@ -123,6 +143,13 @@ export function createPrimaryXmp(gainMapLength) {
|
|
|
123
143
|
throw new Error("Gain map JPEG length must be a positive integer.");
|
|
124
144
|
return `<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="@realsee/hdr-toolbox"><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns:Container="http://ns.google.com/photos/1.0/container/" xmlns:Item="http://ns.google.com/photos/1.0/container/item/" xmlns:hdrgm="${hdrGainMapNamespace}" hdrgm:Version="1.0"><Container:Directory><rdf:Seq><rdf:li rdf:parseType="Resource"><Container:Item Item:Semantic="Primary" Item:Mime="image/jpeg"/></rdf:li><rdf:li rdf:parseType="Resource"><Container:Item Item:Semantic="GainMap" Item:Mime="image/jpeg" Item:Length="${gainMapLength}"/></rdf:li></rdf:Seq></Container:Directory></rdf:Description></rdf:RDF></x:xmpmeta>`;
|
|
125
145
|
}
|
|
146
|
+
function toSnakeCaseJson(config) {
|
|
147
|
+
const result = {};
|
|
148
|
+
for (const key of Object.keys(snakeCaseKeys)) {
|
|
149
|
+
result[snakeCaseKeys[key]] = config[key];
|
|
150
|
+
}
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
126
153
|
export async function readGainMapConfig(path) {
|
|
127
154
|
const text = await readFile(path, "utf8");
|
|
128
155
|
const trimmed = text.trim();
|
|
@@ -133,7 +160,7 @@ export async function readGainMapConfig(path) {
|
|
|
133
160
|
export async function writeGainMapConfig(path, config) {
|
|
134
161
|
const contents = extname(path).toLowerCase() === ".xmp"
|
|
135
162
|
? `${createGainMapXmp(config)}\n`
|
|
136
|
-
: `${JSON.stringify(normalizeGainMapConfig(config), null, 2)}\n`;
|
|
163
|
+
: `${JSON.stringify(toSnakeCaseJson(normalizeGainMapConfig(config)), null, 2)}\n`;
|
|
137
164
|
await mkdir(dirname(path), { recursive: true });
|
|
138
165
|
await writeFile(path, contents, "utf8");
|
|
139
166
|
}
|
package/dist/xmp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xmp.js","sourceRoot":"","sources":["../src/xmp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7C,MAAM,CAAC,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,uCAAuC,CAAC;AAEpE,MAAM,QAAQ,GAAkB;IAC9B,eAAe,EAAE,CAAC;IAClB,eAAe,EAAE,CAAC;IAClB,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,cAAc,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC;IACjB,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY,EAAE,QAAiB;IACnE,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,6BAA6B,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,QAAiB;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,KAAK,CAAC,CAAC;IAClD,OAAO,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAC7C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,MAAM,MAAM,GAAkB;QAC5B,eAAe,EAAE,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"xmp.js","sourceRoot":"","sources":["../src/xmp.ts"],"names":[],"mappings":"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"}
|