ag-psd 16.0.0 → 17.0.0
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/CHANGELOG.md +5 -0
- package/README.md +1 -0
- package/dist/additionalInfo.js +927 -238
- package/dist/additionalInfo.js.map +1 -1
- package/dist/bundle.js +1263 -311
- package/dist/descriptor.d.ts +129 -0
- package/dist/descriptor.js +272 -36
- package/dist/descriptor.js.map +1 -1
- package/dist/imageResources.js +9 -17
- package/dist/imageResources.js.map +1 -1
- package/dist/psd.d.ts +437 -62
- package/dist/psdReader.d.ts +2 -0
- package/dist/psdReader.js +30 -13
- package/dist/psdReader.js.map +1 -1
- package/dist/psdWriter.d.ts +4 -0
- package/dist/psdWriter.js +25 -7
- package/dist/psdWriter.js.map +1 -1
- package/dist-es/additionalInfo.js +928 -239
- package/dist-es/additionalInfo.js.map +1 -1
- package/dist-es/descriptor.d.ts +129 -0
- package/dist-es/descriptor.js +270 -37
- package/dist-es/descriptor.js.map +1 -1
- package/dist-es/imageResources.js +10 -18
- package/dist-es/imageResources.js.map +1 -1
- package/dist-es/psd.d.ts +437 -62
- package/dist-es/psdReader.d.ts +2 -0
- package/dist-es/psdReader.js +27 -12
- package/dist-es/psdReader.js.map +1 -1
- package/dist-es/psdWriter.d.ts +4 -0
- package/dist-es/psdWriter.js +21 -7
- package/dist-es/psdWriter.js.map +1 -1
- package/package.json +1 -1
- package/src/additionalInfo.ts +2008 -288
- package/src/descriptor.ts +297 -37
- package/src/imageResources.ts +14 -19
- package/src/psd.ts +467 -46
- package/src/psdReader.ts +26 -7
- package/src/psdWriter.ts +24 -8
package/dist-es/descriptor.js
CHANGED
|
@@ -10,8 +10,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { createEnum } from './helpers';
|
|
13
|
-
import { readSignature, readUnicodeString, readUint32, readUint8, readFloat64, readBytes, readAsciiString, readInt32, readFloat32, readInt32LE,
|
|
14
|
-
import { writeSignature, writeBytes, writeUint32, writeFloat64, writeUint8, writeUnicodeStringWithPadding, writeInt32, writeFloat32, writeUnicodeString } from './psdWriter';
|
|
13
|
+
import { readSignature, readUnicodeString, readUint32, readUint8, readFloat64, readBytes, readAsciiString, readInt32, readFloat32, readInt32LE, readUnicodeStringWithLengthLE } from './psdReader';
|
|
14
|
+
import { writeSignature, writeBytes, writeUint32, writeFloat64, writeUint8, writeUnicodeStringWithPadding, writeInt32, writeFloat32, writeUnicodeString, writeInt32LE, writeUnicodeStringWithoutLengthLE } from './psdWriter';
|
|
15
15
|
function revMap(map) {
|
|
16
16
|
var result = {};
|
|
17
17
|
Object.keys(map).forEach(function (key) { return result[map[key]] = key; });
|
|
@@ -109,11 +109,15 @@ var fieldToExtType = {
|
|
|
109
109
|
Anch: makeType('', 'Pnt '),
|
|
110
110
|
'Fwd ': makeType('', 'Pnt '),
|
|
111
111
|
'Bwd ': makeType('', 'Pnt '),
|
|
112
|
+
FlrC: makeType('', 'Pnt '),
|
|
112
113
|
meshBoundaryPath: makeType('', 'pathClass'),
|
|
113
114
|
filterFX: makeType('', 'filterFXStyle'),
|
|
114
115
|
Fltr: makeType('', 'rigidTransform'),
|
|
115
116
|
FrgC: makeType('', 'RGBC'),
|
|
116
117
|
BckC: makeType('', 'RGBC'),
|
|
118
|
+
sdwM: makeType('Parameters', 'adaptCorrectTones'),
|
|
119
|
+
hglM: makeType('Parameters', 'adaptCorrectTones'),
|
|
120
|
+
customShape: makeType('', 'customShape'),
|
|
117
121
|
};
|
|
118
122
|
var fieldToArrayExtType = {
|
|
119
123
|
'Crv ': makeType('', 'CrPt'),
|
|
@@ -142,15 +146,20 @@ var fieldToArrayExtType = {
|
|
|
142
146
|
pathComponents: makeType('', 'PaCm'),
|
|
143
147
|
filterFXList: makeType('', 'filterFX'),
|
|
144
148
|
puppetShapeList: makeType('', 'puppetShape'),
|
|
149
|
+
channelDenoise: makeType('', 'channelDenoiseParams'),
|
|
150
|
+
ShrP: makeType('', 'Pnt '),
|
|
145
151
|
};
|
|
146
152
|
var typeToField = {
|
|
147
153
|
'TEXT': [
|
|
148
154
|
'Txt ', 'printerName', 'Nm ', 'Idnt', 'blackAndWhitePresetFileName', 'LUT3DFileName',
|
|
149
155
|
'presetFileName', 'curvesPresetFileName', 'mixerPresetFileName', 'placed', 'description', 'reason',
|
|
150
156
|
'artboardPresetName', 'json', 'clipID', 'relPath', 'fullPath', 'mediaDescriptor', 'Msge',
|
|
151
|
-
'altTag', 'url', 'cellText',
|
|
157
|
+
'altTag', 'url', 'cellText', 'preset', 'KnNm', 'FPth',
|
|
158
|
+
],
|
|
159
|
+
'tdta': [
|
|
160
|
+
'EngineData', 'LUT3DFileData', 'indexArray', 'originalVertexArray', 'deformedVertexArray',
|
|
161
|
+
'LqMe',
|
|
152
162
|
],
|
|
153
|
-
'tdta': ['EngineData', 'LUT3DFileData', 'indexArray', 'originalVertexArray', 'deformedVertexArray'],
|
|
154
163
|
'long': [
|
|
155
164
|
'TextIndex', 'RndS', 'Mdpn', 'Smth', 'Lctn', 'strokeStyleVersion', 'LaID', 'Vrsn', 'Cnt ',
|
|
156
165
|
'Brgh', 'Cntr', 'means', 'vibrance', 'Strt', 'bwPresetKind', 'presetKind', 'comp', 'compID', 'originalCompID',
|
|
@@ -161,16 +170,19 @@ var typeToField = {
|
|
|
161
170
|
'numBefore', 'numAfter', 'Spcn', 'minOpacity', 'maxOpacity', 'BlnM', 'sheetID', 'gblA', 'globalAltitude',
|
|
162
171
|
'descVersion', 'frameReaderType', 'LyrI', 'zoomOrigin', 'fontSize', 'Rds ', 'sliceID',
|
|
163
172
|
'topOutset', 'leftOutset', 'bottomOutset', 'rightOutset', 'filterID', 'meshQuality',
|
|
164
|
-
'meshExpansion', 'meshRigidity', 'VrsM', 'VrsN',
|
|
173
|
+
'meshExpansion', 'meshRigidity', 'VrsM', 'VrsN', 'NmbG', 'WLMn', 'WLMx', 'AmMn', 'AmMx', 'SclH', 'SclV',
|
|
174
|
+
'Lvl ', 'TlNm', 'TlOf', 'FlRs', 'Thsh', 'ShrS', 'ShrE', 'FlRs', 'Vrnc', 'Strg', 'ExtS', 'ExtD',
|
|
175
|
+
'HrzS', 'VrtS', 'NmbR', 'EdgF', 'Ang1', 'Ang2', 'Ang3', 'Ang4',
|
|
165
176
|
],
|
|
166
177
|
'enum': [
|
|
167
|
-
'textGridding', 'Ornt', 'warpStyle', 'warpRotate', 'Inte', 'Bltn', 'ClrS',
|
|
168
|
-
'
|
|
178
|
+
'textGridding', 'Ornt', 'warpStyle', 'warpRotate', 'Inte', 'Bltn', 'ClrS', 'BlrQ',
|
|
179
|
+
'bvlT', 'bvlS', 'bvlD', 'Md ', 'glwS', 'GrdF', 'GlwT', 'RplS', 'BlrM', 'SmBM',
|
|
169
180
|
'strokeStyleLineCapType', 'strokeStyleLineJoinType', 'strokeStyleLineAlignment',
|
|
170
181
|
'strokeStyleBlendMode', 'PntT', 'Styl', 'lookupType', 'LUTFormat', 'dataOrder',
|
|
171
182
|
'tableOrder', 'enableCompCore', 'enableCompCoreGPU', 'compCoreSupport', 'compCoreGPUSupport', 'Engn',
|
|
172
183
|
'enableCompCoreThreads', 'gs99', 'FrDs', 'trackID', 'animInterpStyle', 'horzAlign',
|
|
173
|
-
'vertAlign', 'bgColorType', 'shapeOperation',
|
|
184
|
+
'vertAlign', 'bgColorType', 'shapeOperation', 'UndA', 'Wvtp', 'Drct', 'WndM', 'Edg ', 'FlCl', 'IntE',
|
|
185
|
+
'IntC', 'Cnvr', 'Fl ', 'Dstr', 'MztT', 'Lns ', 'ExtT', 'DspM', 'ExtR', 'ZZTy', 'SphM', 'SmBQ',
|
|
174
186
|
],
|
|
175
187
|
'bool': [
|
|
176
188
|
'PstS', 'printSixteenBit', 'masterFXSwitch', 'enab', 'uglg', 'antialiasGloss',
|
|
@@ -182,7 +194,8 @@ var typeToField = {
|
|
|
182
194
|
'present', 'showInDialog', 'overprint', 'sheetDisclosed', 'lightsDisclosed', 'meshesDisclosed',
|
|
183
195
|
'materialsDisclosed', 'hasMotion', 'muted', 'Effc', 'selected', 'autoScope', 'fillCanvas',
|
|
184
196
|
'cellTextIsHTML', 'Smoo', 'Clsp', 'validAtPosition', 'rigidType', 'hasoptions', 'filterMaskEnable',
|
|
185
|
-
'filterMaskLinked', 'filterMaskExtendWithWhite',
|
|
197
|
+
'filterMaskLinked', 'filterMaskExtendWithWhite', 'removeJPEGArtifact', 'Mnch', 'ExtF', 'ExtM',
|
|
198
|
+
'moreAccurate', 'GpuY', 'LIWy',
|
|
186
199
|
],
|
|
187
200
|
'doub': [
|
|
188
201
|
'warpValue', 'warpPerspective', 'warpPerspectiveOther', 'Intr', 'Wdth', 'Hght',
|
|
@@ -192,10 +205,10 @@ var typeToField = {
|
|
|
192
205
|
'PuX0', 'PuX1', 'PuX2', 'PuX3', 'PuY0', 'PuY1', 'PuY2', 'PuY3'
|
|
193
206
|
],
|
|
194
207
|
'UntF': [
|
|
195
|
-
'
|
|
208
|
+
'sdwO', 'hglO', 'lagl', 'Lald', 'srgR', 'blur', 'Sftn', 'Opct', 'Dstn', 'Angl',
|
|
196
209
|
'Ckmt', 'Nose', 'Inpr', 'ShdN', 'strokeStyleLineWidth', 'strokeStyleLineDashOffset',
|
|
197
210
|
'strokeStyleOpacity', 'H ', 'Top ', 'Left', 'Btom', 'Rght', 'Rslt',
|
|
198
|
-
'topRight', 'topLeft', 'bottomLeft', 'bottomRight',
|
|
211
|
+
'topRight', 'topLeft', 'bottomLeft', 'bottomRight', 'ClNs', 'Shrp',
|
|
199
212
|
],
|
|
200
213
|
'VlLs': [
|
|
201
214
|
'Crv ', 'Clrs', 'Mnm ', 'Mxm ', 'Trns', 'pathList', 'strokeStyleLineDashSet', 'FrLs', 'slices',
|
|
@@ -203,10 +216,12 @@ var typeToField = {
|
|
|
203
216
|
'solidFillMulti', 'frameFXMulti', 'innerShadowMulti', 'dropShadowMulti', 'FrIn', 'FSts', 'FsFr',
|
|
204
217
|
'sheetTimelineOptions', 'audioClipList', 'trackList', 'globalTrackList', 'keyList', 'audioClipList',
|
|
205
218
|
'warpValues', 'selectedPin', 'Pts ', 'SbpL', 'pathComponents', 'pinOffsets', 'posFinalPins',
|
|
206
|
-
'pinVertexIndices', 'PinP', 'PnRt', 'PnOv', 'PnDp', 'filterFXList', 'puppetShapeList',
|
|
219
|
+
'pinVertexIndices', 'PinP', 'PnRt', 'PnOv', 'PnDp', 'filterFXList', 'puppetShapeList', 'ShrP',
|
|
220
|
+
'channelDenoise', 'Mtrx',
|
|
207
221
|
],
|
|
208
222
|
'ObAr': ['meshPoints', 'quiltSliceX', 'quiltSliceY'],
|
|
209
|
-
'obj ': ['null'],
|
|
223
|
+
'obj ': ['null', 'Chnl'],
|
|
224
|
+
'Pth ': ['DspF'],
|
|
210
225
|
};
|
|
211
226
|
var channels = [
|
|
212
227
|
'Rd ', 'Grn ', 'Bl ', 'Yllw', 'Ylw ', 'Cyn ', 'Mgnt', 'Blck', 'Gry ', 'Lmnc', 'A ', 'B ',
|
|
@@ -245,6 +260,9 @@ var fieldToArrayType = {
|
|
|
245
260
|
PnDp: 'doub',
|
|
246
261
|
filterFXList: 'Objc',
|
|
247
262
|
puppetShapeList: 'Objc',
|
|
263
|
+
ShrP: 'Objc',
|
|
264
|
+
channelDenoise: 'Objc',
|
|
265
|
+
Mtrx: 'long',
|
|
248
266
|
};
|
|
249
267
|
var fieldToType = {};
|
|
250
268
|
for (var _i = 0, _a = Object.keys(typeToField); _i < _a.length; _i++) {
|
|
@@ -319,11 +337,12 @@ function writeAsciiStringOrClassId(writer, value) {
|
|
|
319
337
|
}
|
|
320
338
|
}
|
|
321
339
|
export function readDescriptorStructure(reader) {
|
|
322
|
-
|
|
323
|
-
// object.__struct =
|
|
340
|
+
// const struct =
|
|
324
341
|
readClassStructure(reader);
|
|
342
|
+
// const object: any = { _name: struct.name, _classID: struct.classID };
|
|
343
|
+
var object = {};
|
|
344
|
+
// console.log('>> ', struct);
|
|
325
345
|
var itemsCount = readUint32(reader);
|
|
326
|
-
// console.log('//', object.__struct);
|
|
327
346
|
for (var i = 0; i < itemsCount; i++) {
|
|
328
347
|
var key = readAsciiStringOrClassId(reader);
|
|
329
348
|
var type = readSignature(reader);
|
|
@@ -341,21 +360,60 @@ export function writeDescriptorStructure(writer, name, classId, value, root) {
|
|
|
341
360
|
writeUnicodeStringWithPadding(writer, name);
|
|
342
361
|
writeAsciiStringOrClassId(writer, classId);
|
|
343
362
|
var keys = Object.keys(value);
|
|
344
|
-
|
|
363
|
+
var keyCount = keys.length;
|
|
364
|
+
if ('_name' in value)
|
|
365
|
+
keyCount--;
|
|
366
|
+
if ('_classID' in value)
|
|
367
|
+
keyCount--;
|
|
368
|
+
writeUint32(writer, keyCount);
|
|
345
369
|
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
346
370
|
var key = keys_1[_i];
|
|
371
|
+
if (key === '_name' || key === '_classID')
|
|
372
|
+
continue;
|
|
347
373
|
var type = getTypeByKey(key, value[key], root, value);
|
|
348
374
|
var extType = fieldToExtType[key];
|
|
349
375
|
if (key === 'origin') {
|
|
350
376
|
type = root === 'slices' ? 'enum' : 'Objc';
|
|
351
377
|
}
|
|
378
|
+
else if ((key === 'Cyn ' || key === 'Mgnt' || key === 'Ylw ' || key === 'Blck') && value._classID === 'CMYC') {
|
|
379
|
+
type = 'doub';
|
|
380
|
+
}
|
|
381
|
+
else if (/^PN[a-z][a-z]$/.test(key)) {
|
|
382
|
+
type = 'TEXT';
|
|
383
|
+
}
|
|
384
|
+
else if (/^PT[a-z][a-z]$/.test(key)) {
|
|
385
|
+
type = 'long';
|
|
386
|
+
}
|
|
387
|
+
else if (/^PF[a-z][a-z]$/.test(key)) {
|
|
388
|
+
type = 'doub';
|
|
389
|
+
}
|
|
390
|
+
else if (key === 'ClSz' || key === 'Rds ' || key === 'Amnt') {
|
|
391
|
+
type = typeof value[key] === 'number' ? 'long' : 'UntF';
|
|
392
|
+
}
|
|
393
|
+
else if ((key === 'sdwM' || key === 'hglM') && typeof value[key] === 'string') {
|
|
394
|
+
type = 'enum';
|
|
395
|
+
}
|
|
396
|
+
else if (key === 'blur' && typeof value[key] === 'string') {
|
|
397
|
+
type = 'enum';
|
|
398
|
+
}
|
|
399
|
+
else if (key === 'Angl' && typeof value[key] === 'number') {
|
|
400
|
+
type = 'doub'; // ???
|
|
401
|
+
}
|
|
352
402
|
else if (key === 'bounds' && root === 'slices') {
|
|
353
403
|
type = 'Objc';
|
|
354
404
|
extType = makeType('', 'Rct1');
|
|
355
405
|
}
|
|
356
|
-
else if (key === 'Scl '
|
|
357
|
-
|
|
358
|
-
|
|
406
|
+
else if (key === 'Scl ') {
|
|
407
|
+
if (typeof value[key] === 'object' && 'Hrzn' in value[key]) {
|
|
408
|
+
type = 'Objc';
|
|
409
|
+
extType = nullType;
|
|
410
|
+
}
|
|
411
|
+
else if (typeof value[key] === 'number') {
|
|
412
|
+
type = 'long';
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
type = 'UntF';
|
|
416
|
+
}
|
|
359
417
|
}
|
|
360
418
|
else if (key === 'audioClipGroupList' && keys.length === 1) {
|
|
361
419
|
type = 'VlLs';
|
|
@@ -363,7 +421,13 @@ export function writeDescriptorStructure(writer, name, classId, value, root) {
|
|
|
363
421
|
else if ((key === 'Strt' || key === 'Brgh') && 'H ' in value) {
|
|
364
422
|
type = 'doub';
|
|
365
423
|
}
|
|
366
|
-
else if (key === '
|
|
424
|
+
else if (key === 'Wdth' && typeof value[key] === 'object') {
|
|
425
|
+
type = 'UntF';
|
|
426
|
+
}
|
|
427
|
+
else if (key === 'Ofst' && typeof value[key] === 'number') {
|
|
428
|
+
type = 'long';
|
|
429
|
+
}
|
|
430
|
+
else if (key === 'Strt' && typeof value[key] === 'object') {
|
|
367
431
|
type = 'Objc';
|
|
368
432
|
extType = nullType;
|
|
369
433
|
}
|
|
@@ -482,11 +546,11 @@ function readOSType(reader, type) {
|
|
|
482
546
|
return items;
|
|
483
547
|
}
|
|
484
548
|
case 'Pth ': { // File path
|
|
485
|
-
/*const length =*/ readInt32(reader);
|
|
549
|
+
/*const length =*/ readInt32(reader); // total size of all fields below
|
|
486
550
|
var sig = readSignature(reader);
|
|
487
|
-
/*const pathSize =*/ readInt32LE(reader);
|
|
551
|
+
/*const pathSize =*/ readInt32LE(reader); // the same as length
|
|
488
552
|
var charsCount = readInt32LE(reader);
|
|
489
|
-
var path =
|
|
553
|
+
var path = readUnicodeStringWithLengthLE(reader, charsCount);
|
|
490
554
|
return { sig: sig, path: path };
|
|
491
555
|
}
|
|
492
556
|
default:
|
|
@@ -504,12 +568,19 @@ function writeOSType(writer, type, value, key, extType, root) {
|
|
|
504
568
|
writeReferenceStructure(writer, key, value);
|
|
505
569
|
break;
|
|
506
570
|
case 'Objc': // Descriptor
|
|
507
|
-
case 'GlbO': // GlobalObject same as Descriptor
|
|
571
|
+
case 'GlbO': { // GlobalObject same as Descriptor
|
|
572
|
+
if (typeof value !== 'object')
|
|
573
|
+
throw new Error("Invalid struct value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
508
574
|
if (!extType)
|
|
509
575
|
throw new Error("Missing ext type for: '".concat(key, "' (").concat(JSON.stringify(value), ")"));
|
|
510
|
-
|
|
576
|
+
var name_1 = value._name || extType.name;
|
|
577
|
+
var classID = value._classID || extType.classID;
|
|
578
|
+
writeDescriptorStructure(writer, name_1, classID, value, root);
|
|
511
579
|
break;
|
|
580
|
+
}
|
|
512
581
|
case 'VlLs': // List
|
|
582
|
+
if (!Array.isArray(value))
|
|
583
|
+
throw new Error("Invalid list value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
513
584
|
writeInt32(writer, value.length);
|
|
514
585
|
for (var i = 0; i < value.length; i++) {
|
|
515
586
|
var type_3 = fieldToArrayType[key];
|
|
@@ -520,6 +591,8 @@ function writeOSType(writer, type, value, key, extType, root) {
|
|
|
520
591
|
}
|
|
521
592
|
break;
|
|
522
593
|
case 'doub': // Double
|
|
594
|
+
if (typeof value !== 'number')
|
|
595
|
+
throw new Error("Invalid number value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
523
596
|
writeFloat64(writer, value);
|
|
524
597
|
break;
|
|
525
598
|
case 'UntF': // Unit double
|
|
@@ -538,17 +611,23 @@ function writeOSType(writer, type, value, key, extType, root) {
|
|
|
538
611
|
writeUnicodeStringWithPadding(writer, value);
|
|
539
612
|
break;
|
|
540
613
|
case 'enum': { // Enumerated
|
|
614
|
+
if (typeof value !== 'string')
|
|
615
|
+
throw new Error("Invalid enum value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
541
616
|
var _a = value.split('.'), _type = _a[0], val = _a[1];
|
|
542
617
|
writeAsciiStringOrClassId(writer, _type);
|
|
543
618
|
writeAsciiStringOrClassId(writer, val);
|
|
544
619
|
break;
|
|
545
620
|
}
|
|
546
621
|
case 'long': // Integer
|
|
622
|
+
if (typeof value !== 'number')
|
|
623
|
+
throw new Error("Invalid integer value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
547
624
|
writeInt32(writer, value);
|
|
548
625
|
break;
|
|
549
626
|
// case 'comp': // Large Integer
|
|
550
627
|
// writeLargeInteger(reader);
|
|
551
628
|
case 'bool': // Boolean
|
|
629
|
+
if (typeof value !== 'boolean')
|
|
630
|
+
throw new Error("Invalid boolean value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
552
631
|
writeUint8(writer, value ? 1 : 0);
|
|
553
632
|
break;
|
|
554
633
|
// case 'type': // Class
|
|
@@ -579,8 +658,15 @@ function writeOSType(writer, type, value, key, extType, root) {
|
|
|
579
658
|
}
|
|
580
659
|
break;
|
|
581
660
|
}
|
|
582
|
-
|
|
583
|
-
|
|
661
|
+
case 'Pth ': { // File path
|
|
662
|
+
var length_5 = 4 + 4 + 4 + value.path.length * 2;
|
|
663
|
+
writeInt32(writer, length_5);
|
|
664
|
+
writeSignature(writer, value.sig);
|
|
665
|
+
writeInt32LE(writer, length_5);
|
|
666
|
+
writeInt32LE(writer, value.path.length);
|
|
667
|
+
writeUnicodeStringWithoutLengthLE(writer, value.path);
|
|
668
|
+
break;
|
|
669
|
+
}
|
|
584
670
|
default:
|
|
585
671
|
throw new Error("Not implemented descriptor OSType: ".concat(type));
|
|
586
672
|
}
|
|
@@ -671,7 +757,6 @@ function writeReferenceStructure(writer, _key, items) {
|
|
|
671
757
|
function readClassStructure(reader) {
|
|
672
758
|
var name = readUnicodeString(reader);
|
|
673
759
|
var classID = readAsciiStringOrClassId(reader);
|
|
674
|
-
// console.log({ name, classID });
|
|
675
760
|
return { name: name, classID: classID };
|
|
676
761
|
}
|
|
677
762
|
function writeClassStructure(writer, name, classID) {
|
|
@@ -845,7 +930,8 @@ function parseKeyList(keyList, logMissingFeatures) {
|
|
|
845
930
|
var keys = [];
|
|
846
931
|
for (var j = 0; j < keyList.length; j++) {
|
|
847
932
|
var key = keyList[j];
|
|
848
|
-
var
|
|
933
|
+
var _a = key.time, denominator = _a.denominator, numerator = _a.numerator, selected = key.selected, animKey = key.animKey;
|
|
934
|
+
var time = { numerator: numerator, denominator: denominator };
|
|
849
935
|
var interpolation = animInterpStyleEnum.decode(key.animInterpStyle);
|
|
850
936
|
switch (animKey.Type) {
|
|
851
937
|
case 'keyType.Opct':
|
|
@@ -1092,6 +1178,9 @@ function parseEffectObject(obj, reportErrors) {
|
|
|
1092
1178
|
case 'antialiasGloss':
|
|
1093
1179
|
result[key] = val;
|
|
1094
1180
|
break;
|
|
1181
|
+
case '_name':
|
|
1182
|
+
case '_classID':
|
|
1183
|
+
break;
|
|
1095
1184
|
default:
|
|
1096
1185
|
reportErrors && console.log("Invalid effect key: '".concat(key, "', value:"), val);
|
|
1097
1186
|
}
|
|
@@ -1441,25 +1530,25 @@ export function parseColor(color) {
|
|
|
1441
1530
|
}
|
|
1442
1531
|
export function serializeColor(color) {
|
|
1443
1532
|
if (!color) {
|
|
1444
|
-
return { 'Rd ': 0, 'Grn ': 0, 'Bl ': 0 };
|
|
1533
|
+
return { _name: '', _classID: 'RGBC', 'Rd ': 0, 'Grn ': 0, 'Bl ': 0 };
|
|
1445
1534
|
}
|
|
1446
1535
|
else if ('r' in color) {
|
|
1447
|
-
return { 'Rd ': color.r || 0, 'Grn ': color.g || 0, 'Bl ': color.b || 0 };
|
|
1536
|
+
return { _name: '', _classID: 'RGBC', 'Rd ': color.r || 0, 'Grn ': color.g || 0, 'Bl ': color.b || 0 };
|
|
1448
1537
|
}
|
|
1449
1538
|
else if ('fr' in color) {
|
|
1450
|
-
return { redFloat: color.fr, greenFloat: color.fg, blueFloat: color.fb };
|
|
1539
|
+
return { _name: '', _classID: 'XXXX', redFloat: color.fr, greenFloat: color.fg, blueFloat: color.fb };
|
|
1451
1540
|
}
|
|
1452
1541
|
else if ('h' in color) {
|
|
1453
|
-
return { 'H ': unitsAngle(color.h * 360), Strt: color.s || 0, Brgh: color.b || 0 };
|
|
1542
|
+
return { _name: '', _classID: 'HSBC', 'H ': unitsAngle(color.h * 360), Strt: color.s || 0, Brgh: color.b || 0 };
|
|
1454
1543
|
}
|
|
1455
1544
|
else if ('c' in color) {
|
|
1456
|
-
return { 'Cyn ': color.c || 0, Mgnt: color.m || 0, 'Ylw ': color.y || 0, Blck: color.k || 0 };
|
|
1545
|
+
return { _name: '', _classID: 'CMYC', 'Cyn ': color.c || 0, Mgnt: color.m || 0, 'Ylw ': color.y || 0, Blck: color.k || 0 };
|
|
1457
1546
|
}
|
|
1458
1547
|
else if ('l' in color) {
|
|
1459
|
-
return { Lmnc: color.l || 0, 'A ': color.a || 0, 'B ': color.b || 0 };
|
|
1548
|
+
return { _name: '', _classID: 'LABC', Lmnc: color.l || 0, 'A ': color.a || 0, 'B ': color.b || 0 };
|
|
1460
1549
|
}
|
|
1461
1550
|
else if ('k' in color) {
|
|
1462
|
-
return { 'Gry ': color.k };
|
|
1551
|
+
return { _name: '', _classID: 'GRYC', 'Gry ': color.k };
|
|
1463
1552
|
}
|
|
1464
1553
|
else {
|
|
1465
1554
|
throw new Error('Invalid color value');
|
|
@@ -1514,6 +1603,9 @@ export function unitsAngle(value) {
|
|
|
1514
1603
|
export function unitsPercent(value) {
|
|
1515
1604
|
return { units: 'Percent', value: Math.round((value || 0) * 100) };
|
|
1516
1605
|
}
|
|
1606
|
+
export function unitsPercentF(value) {
|
|
1607
|
+
return { units: 'Percent', value: (value || 0) * 100 };
|
|
1608
|
+
}
|
|
1517
1609
|
export function unitsValue(x, key) {
|
|
1518
1610
|
if (x == null)
|
|
1519
1611
|
return { units: 'Pixels', value: 0 };
|
|
@@ -1528,6 +1620,10 @@ export function unitsValue(x, key) {
|
|
|
1528
1620
|
}
|
|
1529
1621
|
return { units: units, value: value };
|
|
1530
1622
|
}
|
|
1623
|
+
export function frac(_a) {
|
|
1624
|
+
var numerator = _a.numerator, denominator = _a.denominator;
|
|
1625
|
+
return { numerator: numerator, denominator: denominator };
|
|
1626
|
+
}
|
|
1531
1627
|
export var textGridding = createEnum('textGridding', 'none', {
|
|
1532
1628
|
none: 'None',
|
|
1533
1629
|
round: 'Rnd ',
|
|
@@ -1649,6 +1745,7 @@ export var ClrS = createEnum('ClrS', 'rgb', {
|
|
|
1649
1745
|
rgb: 'RGBC',
|
|
1650
1746
|
hsb: 'HSBl',
|
|
1651
1747
|
lab: 'LbCl',
|
|
1748
|
+
hsl: 'HSLC',
|
|
1652
1749
|
});
|
|
1653
1750
|
export var FStl = createEnum('FStl', 'outside', {
|
|
1654
1751
|
outside: 'OutF',
|
|
@@ -1695,4 +1792,140 @@ export var strokeStyleLineAlignment = createEnum('strokeStyleLineAlignment', 'in
|
|
|
1695
1792
|
center: 'strokeStyleAlignCenter',
|
|
1696
1793
|
outside: 'strokeStyleAlignOutside',
|
|
1697
1794
|
});
|
|
1795
|
+
export var BlrM = createEnum('BlrM', 'ispinmage', {
|
|
1796
|
+
spin: 'Spn ',
|
|
1797
|
+
zoom: 'Zm ',
|
|
1798
|
+
});
|
|
1799
|
+
export var BlrQ = createEnum('BlrQ', 'good', {
|
|
1800
|
+
draft: 'Drft',
|
|
1801
|
+
good: 'Gd ',
|
|
1802
|
+
best: 'Bst ',
|
|
1803
|
+
});
|
|
1804
|
+
export var SmBM = createEnum('SmBM', 'normal', {
|
|
1805
|
+
normal: 'SBMN',
|
|
1806
|
+
'edge only': 'SBME',
|
|
1807
|
+
'overlay edge': 'SBMO',
|
|
1808
|
+
});
|
|
1809
|
+
export var SmBQ = createEnum('SmBQ', 'medium', {
|
|
1810
|
+
low: 'SBQL',
|
|
1811
|
+
medium: 'SBQM',
|
|
1812
|
+
high: 'SBQH',
|
|
1813
|
+
});
|
|
1814
|
+
export var DspM = createEnum('DspM', 'stretch to fit', {
|
|
1815
|
+
'stretch to fit': 'StrF',
|
|
1816
|
+
'tile': 'Tile',
|
|
1817
|
+
});
|
|
1818
|
+
export var UndA = createEnum('UndA', 'repeat edge pixels', {
|
|
1819
|
+
'wrap around': 'WrpA',
|
|
1820
|
+
'repeat edge pixels': 'RptE',
|
|
1821
|
+
});
|
|
1822
|
+
export var Cnvr = createEnum('Cnvr', 'rectangular to polar', {
|
|
1823
|
+
'rectangular to polar': 'RctP',
|
|
1824
|
+
'polar to rectangular': 'PlrR',
|
|
1825
|
+
});
|
|
1826
|
+
export var RplS = createEnum('RplS', 'medium', {
|
|
1827
|
+
small: 'Sml ',
|
|
1828
|
+
medium: 'Mdm ',
|
|
1829
|
+
large: 'Lrg ',
|
|
1830
|
+
});
|
|
1831
|
+
export var SphM = createEnum('SphM', 'normal', {
|
|
1832
|
+
'normal': 'Nrml',
|
|
1833
|
+
'horizontal only': 'HrzO',
|
|
1834
|
+
'vertical only': 'VrtO',
|
|
1835
|
+
});
|
|
1836
|
+
export var Wvtp = createEnum('Wvtp', 'sine', {
|
|
1837
|
+
sine: 'WvSn',
|
|
1838
|
+
triangle: 'WvTr',
|
|
1839
|
+
square: 'WvSq',
|
|
1840
|
+
});
|
|
1841
|
+
export var ZZTy = createEnum('ZZTy', 'pond ripples', {
|
|
1842
|
+
'around center': 'ArnC',
|
|
1843
|
+
'out from center': 'OtFr',
|
|
1844
|
+
'pond ripples': 'PndR',
|
|
1845
|
+
});
|
|
1846
|
+
export var Dstr = createEnum('Dstr', 'uniform', {
|
|
1847
|
+
uniform: 'Unfr',
|
|
1848
|
+
gaussian: 'Gsn ',
|
|
1849
|
+
});
|
|
1850
|
+
export var Chnl = createEnum('Chnl', 'composite', {
|
|
1851
|
+
red: 'Rd ',
|
|
1852
|
+
green: 'Grn ',
|
|
1853
|
+
blue: 'Bl ',
|
|
1854
|
+
composite: 'Cmps',
|
|
1855
|
+
});
|
|
1856
|
+
export var MztT = createEnum('MztT', 'fine dots', {
|
|
1857
|
+
'fine dots': 'FnDt',
|
|
1858
|
+
'medium dots': 'MdmD',
|
|
1859
|
+
'grainy dots': 'GrnD',
|
|
1860
|
+
'coarse dots': 'CrsD',
|
|
1861
|
+
'short lines': 'ShrL',
|
|
1862
|
+
'medium lines': 'MdmL',
|
|
1863
|
+
'long lines': 'LngL',
|
|
1864
|
+
'short strokes': 'ShSt',
|
|
1865
|
+
'medium strokes': 'MdmS',
|
|
1866
|
+
'long strokes': 'LngS',
|
|
1867
|
+
});
|
|
1868
|
+
export var Lns = createEnum('Lns ', '50-300mm zoom', {
|
|
1869
|
+
'50-300mm zoom': 'Zm ',
|
|
1870
|
+
'32mm prime': 'Nkn ',
|
|
1871
|
+
'105mm prime': 'Nkn1',
|
|
1872
|
+
'movie prime': 'PnVs',
|
|
1873
|
+
});
|
|
1874
|
+
export var blurType = createEnum('blurType', 'gaussian blur', {
|
|
1875
|
+
'gaussian blur': 'GsnB',
|
|
1876
|
+
'lens blur': 'lensBlur',
|
|
1877
|
+
'motion blur': 'MtnB',
|
|
1878
|
+
});
|
|
1879
|
+
export var DfsM = createEnum('DfsM', 'normal', {
|
|
1880
|
+
'normal': 'Nrml',
|
|
1881
|
+
'darken only': 'DrkO',
|
|
1882
|
+
'lighten only': 'LghO',
|
|
1883
|
+
'anisotropic': 'anisotropic',
|
|
1884
|
+
});
|
|
1885
|
+
export var ExtT = createEnum('ExtT', 'blocks', {
|
|
1886
|
+
blocks: 'Blks',
|
|
1887
|
+
pyramids: 'Pyrm',
|
|
1888
|
+
});
|
|
1889
|
+
export var ExtR = createEnum('ExtR', 'random', {
|
|
1890
|
+
random: 'Rndm',
|
|
1891
|
+
'level-based': 'LvlB',
|
|
1892
|
+
});
|
|
1893
|
+
export var FlCl = createEnum('FlCl', 'background color', {
|
|
1894
|
+
'background color': 'FlBc',
|
|
1895
|
+
'foreground color': 'FlFr',
|
|
1896
|
+
'inverse image': 'FlIn',
|
|
1897
|
+
'unaltered image': 'FlSm',
|
|
1898
|
+
});
|
|
1899
|
+
export var CntE = createEnum('CntE', 'upper', {
|
|
1900
|
+
lower: 'Lwr ',
|
|
1901
|
+
upper: 'Upr ',
|
|
1902
|
+
});
|
|
1903
|
+
export var WndM = createEnum('WndM', 'wind', {
|
|
1904
|
+
wind: 'Wnd ',
|
|
1905
|
+
blast: 'Blst',
|
|
1906
|
+
stagger: 'Stgr',
|
|
1907
|
+
});
|
|
1908
|
+
export var Drct = createEnum('Drct', 'from the right', {
|
|
1909
|
+
left: 'Left',
|
|
1910
|
+
right: 'Rght',
|
|
1911
|
+
});
|
|
1912
|
+
export var IntE = createEnum('IntE', 'odd lines', {
|
|
1913
|
+
'odd lines': 'ElmO',
|
|
1914
|
+
'even lines': 'ElmE',
|
|
1915
|
+
});
|
|
1916
|
+
export var IntC = createEnum('IntC', 'interpolation', {
|
|
1917
|
+
duplication: 'CrtD',
|
|
1918
|
+
interpolation: 'CrtI',
|
|
1919
|
+
});
|
|
1920
|
+
export var FlMd = createEnum('FlMd', 'wrap around', {
|
|
1921
|
+
'set to transparent': 'Bckg',
|
|
1922
|
+
'repeat edge pixels': 'Rpt ',
|
|
1923
|
+
'wrap around': 'Wrp ',
|
|
1924
|
+
});
|
|
1925
|
+
export var prjM = createEnum('prjM', 'fisheye', {
|
|
1926
|
+
'fisheye': 'fisP',
|
|
1927
|
+
'perspective': 'perP',
|
|
1928
|
+
'auto': 'auto',
|
|
1929
|
+
'full spherical': 'fusP',
|
|
1930
|
+
});
|
|
1698
1931
|
//# sourceMappingURL=descriptor.js.map
|