ag-psd 16.0.0 → 17.0.1
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 +9 -0
- package/README.md +1 -0
- package/dist/additionalInfo.js +933 -247
- package/dist/additionalInfo.js.map +1 -1
- package/dist/bundle.js +1299 -325
- package/dist/descriptor.d.ts +140 -1
- package/dist/descriptor.js +297 -37
- package/dist/descriptor.js.map +1 -1
- package/dist/imageResources.js +13 -21
- package/dist/imageResources.js.map +1 -1
- package/dist/psd.d.ts +445 -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 +26 -7
- package/dist/psdWriter.js.map +1 -1
- package/dist-es/additionalInfo.js +934 -248
- package/dist-es/additionalInfo.js.map +1 -1
- package/dist-es/descriptor.d.ts +140 -1
- package/dist-es/descriptor.js +293 -38
- package/dist-es/descriptor.js.map +1 -1
- package/dist-es/imageResources.js +14 -22
- package/dist-es/imageResources.js.map +1 -1
- package/dist-es/psd.d.ts +445 -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 +22 -7
- package/dist-es/psdWriter.js.map +1 -1
- package/package.json +1 -1
- package/src/additionalInfo.ts +2014 -289
- package/src/descriptor.ts +329 -39
- package/src/imageResources.ts +18 -23
- package/src/psd.ts +477 -46
- package/src/psdReader.ts +26 -7
- package/src/psdWriter.ts +25 -8
package/dist/bundle.js
CHANGED
|
@@ -292,6 +292,7 @@ var psdWriter_1 = require("./psdWriter");
|
|
|
292
292
|
var descriptor_1 = require("./descriptor");
|
|
293
293
|
var engineData_1 = require("./engineData");
|
|
294
294
|
var text_1 = require("./text");
|
|
295
|
+
var fromAtoZ = 'abcdefghijklmnopqrstuvwxyz';
|
|
295
296
|
exports.infoHandlers = [];
|
|
296
297
|
exports.infoHandlersMap = {};
|
|
297
298
|
function addHandler(key, has, read, write) {
|
|
@@ -345,6 +346,10 @@ addHandler('TySh', hasKey('text'), function (reader, target, leftBytes) {
|
|
|
345
346
|
rotate: descriptor_1.Ornt.decode(warp.warpRotate),
|
|
346
347
|
},
|
|
347
348
|
};
|
|
349
|
+
if (text.bounds)
|
|
350
|
+
target.text.bounds = (0, descriptor_1.descBoundsToBounds)(text.bounds);
|
|
351
|
+
if (text.boundingBox)
|
|
352
|
+
target.text.boundingBox = (0, descriptor_1.descBoundsToBounds)(text.boundingBox);
|
|
348
353
|
if (text.EngineData) {
|
|
349
354
|
var engineData = (0, engineData_1.parseEngineData)(text.EngineData);
|
|
350
355
|
var textData = (0, text_1.decodeEngineData)(engineData);
|
|
@@ -362,20 +367,13 @@ addHandler('TySh', hasKey('text'), function (reader, target, leftBytes) {
|
|
|
362
367
|
var text = target.text;
|
|
363
368
|
var warp = text.warp || {};
|
|
364
369
|
var transform = text.transform || [1, 0, 0, 1, 0, 0];
|
|
365
|
-
var textDescriptor = {
|
|
366
|
-
'Txt ': (text.text || '').replace(/\r?\n/g, '\r'),
|
|
367
|
-
textGridding: descriptor_1.textGridding.encode(text.gridding),
|
|
368
|
-
Ornt: descriptor_1.Ornt.encode(text.orientation),
|
|
369
|
-
AntA: descriptor_1.Annt.encode(text.antiAlias),
|
|
370
|
-
TextIndex: text.index || 0,
|
|
371
|
-
EngineData: (0, engineData_1.serializeEngineData)((0, text_1.encodeEngineData)(text)),
|
|
372
|
-
};
|
|
370
|
+
var textDescriptor = __assign(__assign(__assign({ 'Txt ': (text.text || '').replace(/\r?\n/g, '\r'), textGridding: descriptor_1.textGridding.encode(text.gridding), Ornt: descriptor_1.Ornt.encode(text.orientation), AntA: descriptor_1.Annt.encode(text.antiAlias) }, (text.bounds ? { bounds: (0, descriptor_1.boundsToDescBounds)(text.bounds) } : {})), (text.boundingBox ? { boundingBox: (0, descriptor_1.boundsToDescBounds)(text.boundingBox) } : {})), { TextIndex: text.index || 0, EngineData: (0, engineData_1.serializeEngineData)((0, text_1.encodeEngineData)(text)) });
|
|
373
371
|
(0, psdWriter_1.writeInt16)(writer, 1); // version
|
|
374
372
|
for (var i = 0; i < 6; i++) {
|
|
375
373
|
(0, psdWriter_1.writeFloat64)(writer, transform[i]);
|
|
376
374
|
}
|
|
377
375
|
(0, psdWriter_1.writeInt16)(writer, 50); // text version
|
|
378
|
-
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'TxLr', textDescriptor);
|
|
376
|
+
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'TxLr', textDescriptor, 'text');
|
|
379
377
|
(0, psdWriter_1.writeInt16)(writer, 1); // warp version
|
|
380
378
|
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'warp', encodeWarp(warp));
|
|
381
379
|
(0, psdWriter_1.writeFloat32)(writer, text.left);
|
|
@@ -818,10 +816,10 @@ addHandler('shmd', function (target) { return target.timestamp !== undefined ||
|
|
|
818
816
|
var timeScope = desc.timeScope;
|
|
819
817
|
// console.log('tmln', target.name, target.id, require('util').inspect(desc, false, 99, true));
|
|
820
818
|
var timeline = {
|
|
821
|
-
start: timeScope.Strt,
|
|
822
|
-
duration: timeScope.duration,
|
|
823
|
-
inTime: timeScope.inTime,
|
|
824
|
-
outTime: timeScope.outTime,
|
|
819
|
+
start: (0, descriptor_1.frac)(timeScope.Strt),
|
|
820
|
+
duration: (0, descriptor_1.frac)(timeScope.duration),
|
|
821
|
+
inTime: (0, descriptor_1.frac)(timeScope.inTime),
|
|
822
|
+
outTime: (0, descriptor_1.frac)(timeScope.outTime),
|
|
825
823
|
autoScope: desc.autoScope,
|
|
826
824
|
audioLevel: desc.audioLevel,
|
|
827
825
|
};
|
|
@@ -962,7 +960,7 @@ addHandler('vstk', hasKey('vectorStroke'), function (reader, target, left) {
|
|
|
962
960
|
}, function (writer, target) {
|
|
963
961
|
var _a, _b, _c;
|
|
964
962
|
var stroke = target.vectorStroke;
|
|
965
|
-
var
|
|
963
|
+
var desc = {
|
|
966
964
|
strokeStyleVersion: 2,
|
|
967
965
|
strokeEnabled: !!stroke.strokeEnabled,
|
|
968
966
|
fillEnabled: !!stroke.fillEnabled,
|
|
@@ -980,7 +978,7 @@ addHandler('vstk', hasKey('vectorStroke'), function (reader, target, left) {
|
|
|
980
978
|
strokeStyleContent: (0, descriptor_1.serializeVectorContent)(stroke.content || { type: 'color', color: { r: 0, g: 0, b: 0 } }).descriptor,
|
|
981
979
|
strokeStyleResolution: (_c = stroke.resolution) !== null && _c !== void 0 ? _c : 72,
|
|
982
980
|
};
|
|
983
|
-
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'strokeStyle',
|
|
981
|
+
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'strokeStyle', desc);
|
|
984
982
|
});
|
|
985
983
|
addHandler('artb', // per-layer arboard info
|
|
986
984
|
hasKey('artboard'), function (reader, target, left) {
|
|
@@ -1045,7 +1043,7 @@ function isQuiltWarp(warp) {
|
|
|
1045
1043
|
}
|
|
1046
1044
|
function encodeWarp(warp) {
|
|
1047
1045
|
var bounds = warp.bounds;
|
|
1048
|
-
var desc = __assign(__assign({ warpStyle: descriptor_1.warpStyle.encode(warp.style) }, (warp.values ? { warpValues: warp.values } : { warpValue: warp.value })), { warpPerspective: warp.perspective || 0, warpPerspectiveOther: warp.perspectiveOther || 0, warpRotate: descriptor_1.Ornt.encode(warp.rotate), bounds: {
|
|
1046
|
+
var desc = __assign(__assign({ warpStyle: descriptor_1.warpStyle.encode(warp.style) }, (warp.values ? { warpValues: warp.values } : { warpValue: warp.value || 0 })), { warpPerspective: warp.perspective || 0, warpPerspectiveOther: warp.perspectiveOther || 0, warpRotate: descriptor_1.Ornt.encode(warp.rotate), bounds: {
|
|
1049
1047
|
'Top ': (0, descriptor_1.unitsValue)(bounds && bounds.top || { units: 'Pixels', value: 0 }, 'bounds.top'),
|
|
1050
1048
|
Left: (0, descriptor_1.unitsValue)(bounds && bounds.left || { units: 'Pixels', value: 0 }, 'bounds.left'),
|
|
1051
1049
|
Btom: (0, descriptor_1.unitsValue)(bounds && bounds.bottom || { units: 'Pixels', value: 0 }, 'bounds.bottom'),
|
|
@@ -1063,6 +1061,8 @@ function encodeWarp(warp) {
|
|
|
1063
1061
|
if (isQuilt) {
|
|
1064
1062
|
var desc2 = desc;
|
|
1065
1063
|
desc2.customEnvelopeWarp = {
|
|
1064
|
+
_name: '',
|
|
1065
|
+
_classID: 'customEnvelopeWarp',
|
|
1066
1066
|
quiltSliceX: [{
|
|
1067
1067
|
type: 'quiltSliceX',
|
|
1068
1068
|
values: customEnvelopeWarp.quiltSliceX || [],
|
|
@@ -1079,6 +1079,8 @@ function encodeWarp(warp) {
|
|
|
1079
1079
|
}
|
|
1080
1080
|
else {
|
|
1081
1081
|
desc.customEnvelopeWarp = {
|
|
1082
|
+
_name: '',
|
|
1083
|
+
_classID: 'customEnvelopeWarp',
|
|
1082
1084
|
meshPoints: [
|
|
1083
1085
|
{ type: 'Hrzn', values: meshPoints.map(function (p) { return p.x; }) },
|
|
1084
1086
|
{ type: 'Vrtc', values: meshPoints.map(function (p) { return p.y; }) },
|
|
@@ -1170,58 +1172,345 @@ function hrznVrtcToPoint(desc) {
|
|
|
1170
1172
|
}
|
|
1171
1173
|
function pointToHrznVrtc(point) {
|
|
1172
1174
|
return {
|
|
1175
|
+
_name: '',
|
|
1176
|
+
_classID: 'Pnt ',
|
|
1173
1177
|
Hrzn: (0, descriptor_1.unitsValue)(point.x, 'x'),
|
|
1174
1178
|
Vrtc: (0, descriptor_1.unitsValue)(point.y, 'y'),
|
|
1175
1179
|
};
|
|
1176
1180
|
}
|
|
1177
|
-
function
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1181
|
+
function parseFilterFXItem(f) {
|
|
1182
|
+
var base = {
|
|
1183
|
+
name: f['Nm '],
|
|
1184
|
+
opacity: (0, descriptor_1.parsePercent)(f.blendOptions.Opct),
|
|
1185
|
+
blendMode: descriptor_1.BlnM.decode(f.blendOptions['Md ']),
|
|
1186
|
+
enabled: f.enab,
|
|
1187
|
+
hasOptions: f.hasoptions,
|
|
1188
|
+
foregroundColor: (0, descriptor_1.parseColor)(f.FrgC),
|
|
1189
|
+
backgroundColor: (0, descriptor_1.parseColor)(f.BckC),
|
|
1190
|
+
};
|
|
1191
|
+
switch (f.filterID) {
|
|
1192
|
+
case 1098281575: return __assign(__assign({}, base), { type: 'average' });
|
|
1193
|
+
case 1114403360: return __assign(__assign({}, base), { type: 'blur' });
|
|
1194
|
+
case 1114403405: return __assign(__assign({}, base), { type: 'blur more' });
|
|
1195
|
+
case 697: return __assign(__assign({}, base), { type: 'box blur', filter: {
|
|
1196
|
+
radius: (0, descriptor_1.parseUnits)(f.Fltr['Rds ']),
|
|
1197
|
+
} });
|
|
1198
|
+
case 1198747202: return __assign(__assign({}, base), { type: 'gaussian blur', filter: {
|
|
1199
|
+
radius: (0, descriptor_1.parseUnits)(f.Fltr['Rds ']),
|
|
1200
|
+
} });
|
|
1201
|
+
case 1299476034: return __assign(__assign({}, base), { type: 'motion blur', filter: {
|
|
1202
|
+
angle: f.Fltr.Angl,
|
|
1203
|
+
distance: (0, descriptor_1.parseUnits)(f.Fltr.Dstn),
|
|
1204
|
+
} });
|
|
1205
|
+
case 1382313026: return __assign(__assign({}, base), { type: 'radial blur', filter: {
|
|
1206
|
+
amount: f.Fltr.Amnt,
|
|
1207
|
+
method: descriptor_1.BlrM.decode(f.Fltr.BlrM),
|
|
1208
|
+
quality: descriptor_1.BlrQ.decode(f.Fltr.BlrQ),
|
|
1209
|
+
} });
|
|
1210
|
+
case 702: return __assign(__assign({}, base), { type: 'shape blur', filter: {
|
|
1211
|
+
radius: (0, descriptor_1.parseUnits)(f.Fltr['Rds ']),
|
|
1212
|
+
customShape: { name: f.Fltr.customShape['Nm '], id: f.Fltr.customShape.Idnt },
|
|
1213
|
+
} });
|
|
1214
|
+
case 1399681602: return __assign(__assign({}, base), { type: 'smart blur', filter: {
|
|
1215
|
+
radius: f.Fltr['Rds '],
|
|
1216
|
+
threshold: f.Fltr.Thsh,
|
|
1217
|
+
quality: descriptor_1.SmBQ.decode(f.Fltr.SmBQ),
|
|
1218
|
+
mode: descriptor_1.SmBM.decode(f.Fltr.SmBM),
|
|
1219
|
+
} });
|
|
1220
|
+
case 701: return __assign(__assign({}, base), { type: 'surface blur', filter: {
|
|
1221
|
+
radius: (0, descriptor_1.parseUnits)(f.Fltr['Rds ']),
|
|
1222
|
+
threshold: f.Fltr.Thsh,
|
|
1223
|
+
} });
|
|
1224
|
+
case 1148416108: return __assign(__assign({}, base), { type: 'displace', filter: {
|
|
1225
|
+
horizontalScale: f.Fltr.HrzS,
|
|
1226
|
+
verticalScale: f.Fltr.VrtS,
|
|
1227
|
+
displacementMap: descriptor_1.DspM.decode(f.Fltr.DspM),
|
|
1228
|
+
undefinedAreas: descriptor_1.UndA.decode(f.Fltr.UndA),
|
|
1229
|
+
displacementFile: {
|
|
1230
|
+
signature: f.Fltr.DspF.sig,
|
|
1231
|
+
path: f.Fltr.DspF.path, // TODO: this is decoded incorrectly ???
|
|
1232
|
+
},
|
|
1233
|
+
} });
|
|
1234
|
+
case 1349411688: return __assign(__assign({}, base), { type: 'pinch', filter: {
|
|
1235
|
+
amount: f.Fltr.Amnt,
|
|
1236
|
+
} });
|
|
1237
|
+
case 1349284384: return __assign(__assign({}, base), { type: 'polar coordinates', filter: {
|
|
1238
|
+
conversion: descriptor_1.Cnvr.decode(f.Fltr.Cnvr),
|
|
1239
|
+
} });
|
|
1240
|
+
case 1383099493: return __assign(__assign({}, base), { type: 'ripple', filter: {
|
|
1241
|
+
amount: f.Fltr.Amnt,
|
|
1242
|
+
size: descriptor_1.RplS.decode(f.Fltr.RplS),
|
|
1243
|
+
} });
|
|
1244
|
+
case 1399353888: return __assign(__assign({}, base), { type: 'shear', filter: {
|
|
1245
|
+
shearPoints: f.Fltr.ShrP.map(function (p) { return ({ x: p.Hrzn, y: p.Vrtc }); }),
|
|
1246
|
+
shearStart: f.Fltr.ShrS,
|
|
1247
|
+
shearEnd: f.Fltr.ShrE,
|
|
1248
|
+
undefinedAreas: descriptor_1.UndA.decode(f.Fltr.UndA),
|
|
1249
|
+
} });
|
|
1250
|
+
case 1399875698: return __assign(__assign({}, base), { type: 'spherize', filter: {
|
|
1251
|
+
amount: f.Fltr.Amnt,
|
|
1252
|
+
mode: descriptor_1.SphM.decode(f.Fltr.SphM),
|
|
1253
|
+
} });
|
|
1254
|
+
case 1417114220: return __assign(__assign({}, base), { type: 'twirl', filter: {
|
|
1255
|
+
angle: f.Fltr.Angl,
|
|
1256
|
+
} });
|
|
1257
|
+
case 1466005093: return __assign(__assign({}, base), { type: 'wave', filter: {
|
|
1258
|
+
numberOfGenerators: f.Fltr.NmbG,
|
|
1259
|
+
type: descriptor_1.Wvtp.decode(f.Fltr.Wvtp),
|
|
1260
|
+
wavelength: { min: f.Fltr.WLMn, max: f.Fltr.WLMx },
|
|
1261
|
+
amplitude: { min: f.Fltr.AmMn, max: f.Fltr.AmMx },
|
|
1262
|
+
scale: { x: f.Fltr.SclH, y: f.Fltr.SclV },
|
|
1263
|
+
randomSeed: f.Fltr.RndS,
|
|
1264
|
+
undefinedAreas: descriptor_1.UndA.decode(f.Fltr.UndA),
|
|
1265
|
+
} });
|
|
1266
|
+
case 1516722791: return __assign(__assign({}, base), { type: 'zigzag', filter: {
|
|
1267
|
+
amount: f.Fltr.Amnt,
|
|
1268
|
+
ridges: f.Fltr.NmbR,
|
|
1269
|
+
style: descriptor_1.ZZTy.decode(f.Fltr.ZZTy),
|
|
1270
|
+
} });
|
|
1271
|
+
case 1097092723: return __assign(__assign({}, base), { type: 'add noise', filter: {
|
|
1272
|
+
amount: (0, descriptor_1.parsePercent)(f.Fltr.Nose),
|
|
1273
|
+
distribution: descriptor_1.Dstr.decode(f.Fltr.Dstr),
|
|
1274
|
+
monochromatic: f.Fltr.Mnch,
|
|
1275
|
+
randomSeed: f.Fltr.FlRs,
|
|
1276
|
+
} });
|
|
1277
|
+
case 1148416099: return __assign(__assign({}, base), { type: 'despeckle' });
|
|
1278
|
+
case 1148417107: return __assign(__assign({}, base), { type: 'dust and scratches', filter: {
|
|
1279
|
+
radius: f.Fltr['Rds '],
|
|
1280
|
+
threshold: f.Fltr.Thsh,
|
|
1281
|
+
} });
|
|
1282
|
+
case 1298427424: return __assign(__assign({}, base), { type: 'median', filter: {
|
|
1283
|
+
radius: (0, descriptor_1.parseUnits)(f.Fltr['Rds ']),
|
|
1284
|
+
} });
|
|
1285
|
+
case 633: return __assign(__assign({}, base), { type: 'reduce noise', filter: {
|
|
1286
|
+
preset: f.Fltr.preset,
|
|
1287
|
+
removeJpegArtifact: f.Fltr.removeJPEGArtifact,
|
|
1288
|
+
reduceColorNoise: (0, descriptor_1.parsePercent)(f.Fltr.ClNs),
|
|
1289
|
+
sharpenDetails: (0, descriptor_1.parsePercent)(f.Fltr.Shrp),
|
|
1290
|
+
channelDenoise: f.Fltr.channelDenoise.map(function (c) { return (__assign({ channels: c.Chnl.map(function (i) { return descriptor_1.Chnl.decode(i); }), amount: c.Amnt }, (c.EdgF ? { preserveDetails: c.EdgF } : {}))); }),
|
|
1291
|
+
} });
|
|
1292
|
+
case 1131180616: return __assign(__assign({}, base), { type: 'color halftone', filter: {
|
|
1293
|
+
radius: f.Fltr['Rds '],
|
|
1294
|
+
angle1: f.Fltr.Ang1,
|
|
1295
|
+
angle2: f.Fltr.Ang2,
|
|
1296
|
+
angle3: f.Fltr.Ang3,
|
|
1297
|
+
angle4: f.Fltr.Ang4,
|
|
1298
|
+
} });
|
|
1299
|
+
case 1131574132: return __assign(__assign({}, base), { type: 'crystallize', filter: {
|
|
1300
|
+
cellSize: f.Fltr.ClSz,
|
|
1301
|
+
randomSeed: f.Fltr.FlRs,
|
|
1302
|
+
} });
|
|
1303
|
+
case 1180922912: return __assign(__assign({}, base), { type: 'facet' });
|
|
1304
|
+
case 1181902701: return __assign(__assign({}, base), { type: 'fragment' });
|
|
1305
|
+
case 1299870830: return __assign(__assign({}, base), { type: 'mezzotint', filter: {
|
|
1306
|
+
type: descriptor_1.MztT.decode(f.Fltr.MztT),
|
|
1307
|
+
randomSeed: f.Fltr.FlRs,
|
|
1308
|
+
} });
|
|
1309
|
+
case 1299407648: return __assign(__assign({}, base), { type: 'mosaic', filter: {
|
|
1310
|
+
cellSize: (0, descriptor_1.parseUnits)(f.Fltr.ClSz),
|
|
1311
|
+
} });
|
|
1312
|
+
case 1349416044: return __assign(__assign({}, base), { type: 'pointillize', filter: {
|
|
1313
|
+
cellSize: f.Fltr.ClSz,
|
|
1314
|
+
randomSeed: f.Fltr.FlRs,
|
|
1315
|
+
} });
|
|
1316
|
+
case 1131177075: return __assign(__assign({}, base), { type: 'clouds', filter: {
|
|
1317
|
+
randomSeed: f.Fltr.FlRs,
|
|
1318
|
+
} });
|
|
1319
|
+
case 1147564611: return __assign(__assign({}, base), { type: 'difference clouds', filter: {
|
|
1320
|
+
randomSeed: f.Fltr.FlRs,
|
|
1321
|
+
} });
|
|
1322
|
+
case 1180856947: return __assign(__assign({}, base), { type: 'fibers', filter: {
|
|
1323
|
+
variance: f.Fltr.Vrnc,
|
|
1324
|
+
strength: f.Fltr.Strg,
|
|
1325
|
+
randomSeed: f.Fltr.RndS,
|
|
1326
|
+
} });
|
|
1327
|
+
case 1282306886: return __assign(__assign({}, base), { type: 'lens flare', filter: {
|
|
1328
|
+
brightness: f.Fltr.Brgh,
|
|
1329
|
+
position: { x: f.Fltr.FlrC.Hrzn, y: f.Fltr.FlrC.Vrtc },
|
|
1330
|
+
lensType: descriptor_1.Lns.decode(f.Fltr['Lns ']),
|
|
1331
|
+
} });
|
|
1332
|
+
case 1399353968: return __assign(__assign({}, base), { type: 'sharpen' });
|
|
1333
|
+
case 1399353925: return __assign(__assign({}, base), { type: 'sharpen edges' });
|
|
1334
|
+
case 1399353933: return __assign(__assign({}, base), { type: 'sharpen more' });
|
|
1335
|
+
case 698: return __assign(__assign({}, base), { type: 'smart sharpen', filter: {
|
|
1336
|
+
amount: (0, descriptor_1.parsePercent)(f.Fltr.Amnt),
|
|
1337
|
+
radius: (0, descriptor_1.parseUnits)(f.Fltr['Rds ']),
|
|
1338
|
+
threshold: f.Fltr.Thsh,
|
|
1339
|
+
angle: f.Fltr.Angl,
|
|
1340
|
+
moreAccurate: f.Fltr.moreAccurate,
|
|
1341
|
+
blur: descriptor_1.blurType.decode(f.Fltr.blur),
|
|
1342
|
+
preset: f.Fltr.preset,
|
|
1343
|
+
shadow: {
|
|
1344
|
+
fadeAmount: (0, descriptor_1.parsePercent)(f.Fltr.sdwM.Amnt),
|
|
1345
|
+
tonalWidth: (0, descriptor_1.parsePercent)(f.Fltr.sdwM.Wdth),
|
|
1346
|
+
radius: f.Fltr.sdwM['Rds '],
|
|
1347
|
+
},
|
|
1348
|
+
highlight: {
|
|
1349
|
+
fadeAmount: (0, descriptor_1.parsePercent)(f.Fltr.hglM.Amnt),
|
|
1350
|
+
tonalWidth: (0, descriptor_1.parsePercent)(f.Fltr.hglM.Wdth),
|
|
1351
|
+
radius: f.Fltr.hglM['Rds '],
|
|
1352
|
+
},
|
|
1353
|
+
} });
|
|
1354
|
+
case 1433301837: return __assign(__assign({}, base), { type: 'unsharp mask', filter: {
|
|
1355
|
+
amount: (0, descriptor_1.parsePercent)(f.Fltr.Amnt),
|
|
1356
|
+
radius: (0, descriptor_1.parseUnits)(f.Fltr['Rds ']),
|
|
1357
|
+
threshold: f.Fltr.Thsh,
|
|
1358
|
+
} });
|
|
1359
|
+
case 1147564832: return __assign(__assign({}, base), { type: 'diffuse', filter: {
|
|
1360
|
+
mode: descriptor_1.DfsM.decode(f.Fltr['Md ']),
|
|
1361
|
+
randomSeed: f.Fltr.FlRs,
|
|
1362
|
+
} });
|
|
1363
|
+
case 1164796531: return __assign(__assign({}, base), { type: 'emboss', filter: {
|
|
1364
|
+
angle: f.Fltr.Angl,
|
|
1365
|
+
height: f.Fltr.Hght,
|
|
1366
|
+
amount: f.Fltr.Amnt,
|
|
1367
|
+
} });
|
|
1368
|
+
case 1165522034: return __assign(__assign({}, base), { type: 'extrude', filter: {
|
|
1369
|
+
type: descriptor_1.ExtT.decode(f.Fltr.ExtT),
|
|
1370
|
+
size: f.Fltr.ExtS,
|
|
1371
|
+
depth: f.Fltr.ExtD,
|
|
1372
|
+
depthMode: descriptor_1.ExtR.decode(f.Fltr.ExtR),
|
|
1373
|
+
randomSeed: f.Fltr.FlRs,
|
|
1374
|
+
solidFrontFaces: f.Fltr.ExtF,
|
|
1375
|
+
maskIncompleteBlocks: f.Fltr.ExtM,
|
|
1376
|
+
} });
|
|
1377
|
+
case 1181639749: return __assign(__assign({}, base), { type: 'find edges' });
|
|
1378
|
+
case 1399616122: return __assign(__assign({}, base), { type: 'solarize' });
|
|
1379
|
+
case 1416393504: return __assign(__assign({}, base), { type: 'tiles', filter: {
|
|
1380
|
+
numberOfTiles: f.Fltr.TlNm,
|
|
1381
|
+
maximumOffset: f.Fltr.TlOf,
|
|
1382
|
+
fillEmptyAreaWith: descriptor_1.FlCl.decode(f.Fltr.FlCl),
|
|
1383
|
+
randomSeed: f.Fltr.FlRs,
|
|
1384
|
+
} });
|
|
1385
|
+
case 1416782659: return __assign(__assign({}, base), { type: 'trace contour', filter: {
|
|
1386
|
+
level: f.Fltr['Lvl '],
|
|
1387
|
+
edge: descriptor_1.CntE.decode(f.Fltr['Edg ']),
|
|
1388
|
+
} });
|
|
1389
|
+
case 1466852384: return __assign(__assign({}, base), { type: 'wind', filter: {
|
|
1390
|
+
method: descriptor_1.WndM.decode(f.Fltr.WndM),
|
|
1391
|
+
direction: descriptor_1.Drct.decode(f.Fltr.Drct),
|
|
1392
|
+
} });
|
|
1393
|
+
case 1148089458: return __assign(__assign({}, base), { type: 'de-interlace', filter: {
|
|
1394
|
+
eliminate: descriptor_1.IntE.decode(f.Fltr.IntE),
|
|
1395
|
+
newFieldsBy: descriptor_1.IntC.decode(f.Fltr.IntC),
|
|
1396
|
+
} });
|
|
1397
|
+
case 1314149187: return __assign(__assign({}, base), { type: 'ntsc colors' });
|
|
1398
|
+
case 1131639917: return __assign(__assign({}, base), { type: 'custom', filter: {
|
|
1399
|
+
scale: f.Fltr['Scl '],
|
|
1400
|
+
offset: f.Fltr.Ofst,
|
|
1401
|
+
matrix: f.Fltr.Mtrx,
|
|
1402
|
+
} });
|
|
1403
|
+
case 1214736464: return __assign(__assign({}, base), { type: 'high pass', filter: {
|
|
1404
|
+
radius: (0, descriptor_1.parseUnits)(f.Fltr['Rds ']),
|
|
1405
|
+
} });
|
|
1406
|
+
case 1299737888: return __assign(__assign({}, base), { type: 'maximum', filter: {
|
|
1407
|
+
radius: (0, descriptor_1.parseUnits)(f.Fltr['Rds ']),
|
|
1408
|
+
} });
|
|
1409
|
+
case 1299082528: return __assign(__assign({}, base), { type: 'minimum', filter: {
|
|
1410
|
+
radius: (0, descriptor_1.parseUnits)(f.Fltr['Rds ']),
|
|
1411
|
+
} });
|
|
1412
|
+
case 1332114292: return __assign(__assign({}, base), { type: 'offset', filter: {
|
|
1413
|
+
horizontal: f.Fltr.Hrzn,
|
|
1414
|
+
vertical: f.Fltr.Vrtc,
|
|
1415
|
+
undefinedAreas: descriptor_1.FlMd.decode(f.Fltr['Fl ']),
|
|
1416
|
+
} });
|
|
1417
|
+
case 991: return __assign(__assign({}, base), { type: 'puppet', filter: {
|
|
1418
|
+
rigidType: f.Fltr.rigidType,
|
|
1419
|
+
bounds: [
|
|
1420
|
+
{ x: f.Fltr.PuX0, y: f.Fltr.PuY0, },
|
|
1421
|
+
{ x: f.Fltr.PuX1, y: f.Fltr.PuY1, },
|
|
1422
|
+
{ x: f.Fltr.PuX2, y: f.Fltr.PuY2, },
|
|
1423
|
+
{ x: f.Fltr.PuX3, y: f.Fltr.PuY3, },
|
|
1424
|
+
],
|
|
1425
|
+
puppetShapeList: f.Fltr.puppetShapeList.map(function (p) { return ({
|
|
1426
|
+
rigidType: p.rigidType,
|
|
1427
|
+
// TODO: VrsM
|
|
1428
|
+
// TODO: VrsN
|
|
1429
|
+
originalVertexArray: uint8ToPoints(p.originalVertexArray),
|
|
1430
|
+
deformedVertexArray: uint8ToPoints(p.deformedVertexArray),
|
|
1431
|
+
indexArray: Array.from(uint8ToUint32(p.indexArray)),
|
|
1432
|
+
pinOffsets: arrayToPoints(p.pinOffsets),
|
|
1433
|
+
posFinalPins: arrayToPoints(p.posFinalPins),
|
|
1434
|
+
pinVertexIndices: p.pinVertexIndices,
|
|
1435
|
+
selectedPin: p.selectedPin,
|
|
1436
|
+
pinPosition: arrayToPoints(p.PinP),
|
|
1437
|
+
pinRotation: p.PnRt,
|
|
1438
|
+
pinOverlay: p.PnOv,
|
|
1439
|
+
pinDepth: p.PnDp,
|
|
1440
|
+
meshQuality: p.meshQuality,
|
|
1441
|
+
meshExpansion: p.meshExpansion,
|
|
1442
|
+
meshRigidity: p.meshRigidity,
|
|
1443
|
+
imageResolution: p.imageResolution,
|
|
1444
|
+
meshBoundaryPath: {
|
|
1445
|
+
pathComponents: p.meshBoundaryPath.pathComponents.map(function (c) { return ({
|
|
1446
|
+
shapeOperation: c.shapeOperation.split('.')[1],
|
|
1447
|
+
paths: c.SbpL.map(function (t) { return ({
|
|
1448
|
+
closed: t.Clsp,
|
|
1449
|
+
points: t['Pts '].map(function (pt) { return ({
|
|
1450
|
+
anchor: hrznVrtcToPoint(pt.Anch),
|
|
1451
|
+
forward: hrznVrtcToPoint(pt['Fwd ']),
|
|
1452
|
+
backward: hrznVrtcToPoint(pt['Bwd ']),
|
|
1453
|
+
smooth: pt.Smoo,
|
|
1454
|
+
}); }),
|
|
1216
1455
|
}); }),
|
|
1217
1456
|
}); }),
|
|
1218
|
-
}
|
|
1219
|
-
},
|
|
1220
|
-
}
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1457
|
+
},
|
|
1458
|
+
}); }),
|
|
1459
|
+
} });
|
|
1460
|
+
case 1348620396: {
|
|
1461
|
+
var parameters = [];
|
|
1462
|
+
var Flrt = f.Fltr;
|
|
1463
|
+
for (var i = 0; i < fromAtoZ.length; i++) {
|
|
1464
|
+
if (!Flrt["PN".concat(fromAtoZ[i], "a")])
|
|
1465
|
+
break;
|
|
1466
|
+
for (var j = 0; j < fromAtoZ.length; j++) {
|
|
1467
|
+
if (!Flrt["PN".concat(fromAtoZ[i]).concat(fromAtoZ[j])])
|
|
1468
|
+
break;
|
|
1469
|
+
parameters.push({
|
|
1470
|
+
name: Flrt["PN".concat(fromAtoZ[i]).concat(fromAtoZ[j])],
|
|
1471
|
+
value: Flrt["PF".concat(fromAtoZ[i]).concat(fromAtoZ[j])]
|
|
1472
|
+
});
|
|
1473
|
+
}
|
|
1474
|
+
}
|
|
1475
|
+
return __assign(__assign({}, base), { type: 'oil paint plugin', filter: {
|
|
1476
|
+
name: f.Fltr.KnNm,
|
|
1477
|
+
gpu: f.Fltr.GpuY,
|
|
1478
|
+
lighting: f.Fltr.LIWy,
|
|
1479
|
+
parameters: parameters,
|
|
1480
|
+
} });
|
|
1481
|
+
}
|
|
1482
|
+
// case 2089: return {
|
|
1483
|
+
// ...base,
|
|
1484
|
+
// type: 'adaptive wide angle',
|
|
1485
|
+
// params: {
|
|
1486
|
+
// correction: prjM.decode(f.Fltr.prjM),
|
|
1487
|
+
// focalLength: f.Fltr.focL,
|
|
1488
|
+
// cropFactor: f.Fltr.CrpF,
|
|
1489
|
+
// imageScale: f.Fltr.imgS,
|
|
1490
|
+
// imageX: f.Fltr.imgX,
|
|
1491
|
+
// imageY: f.Fltr.imgY,
|
|
1492
|
+
// },
|
|
1493
|
+
// };
|
|
1494
|
+
case 1215521360: return __assign(__assign({}, base), { type: 'hsb/hsl', filter: {
|
|
1495
|
+
inputMode: descriptor_1.ClrS.decode(f.Fltr.Inpt),
|
|
1496
|
+
rowOrder: descriptor_1.ClrS.decode(f.Fltr.Otpt),
|
|
1497
|
+
} });
|
|
1498
|
+
case 1122: return __assign(__assign({}, base), { type: 'oil paint', filter: {
|
|
1499
|
+
lightingOn: f.Fltr.lightingOn,
|
|
1500
|
+
stylization: f.Fltr.stylization,
|
|
1501
|
+
cleanliness: f.Fltr.cleanliness,
|
|
1502
|
+
brushScale: f.Fltr.brushScale,
|
|
1503
|
+
microBrush: f.Fltr.microBrush,
|
|
1504
|
+
lightDirection: f.Fltr.LghD,
|
|
1505
|
+
specularity: f.Fltr.specularity,
|
|
1506
|
+
} });
|
|
1507
|
+
case 1282492025: {
|
|
1508
|
+
return __assign(__assign({}, base), { type: 'liquify', filter: {
|
|
1509
|
+
liquifyMesh: f.Fltr.LqMe,
|
|
1510
|
+
} });
|
|
1511
|
+
}
|
|
1512
|
+
default:
|
|
1513
|
+
throw new Error("Unknown filterID: ".concat(f.filterID));
|
|
1225
1514
|
}
|
|
1226
1515
|
}
|
|
1227
1516
|
function parseFilterFX(desc) {
|
|
@@ -1231,96 +1520,446 @@ function parseFilterFX(desc) {
|
|
|
1231
1520
|
maskEnabled: desc.filterMaskEnable,
|
|
1232
1521
|
maskLinked: desc.filterMaskLinked,
|
|
1233
1522
|
maskExtendWithWhite: desc.filterMaskExtendWithWhite,
|
|
1234
|
-
list: desc.filterFXList.map(
|
|
1235
|
-
id: f.filterID,
|
|
1236
|
-
name: f['Nm '],
|
|
1237
|
-
opacity: (0, descriptor_1.parsePercent)(f.blendOptions.Opct),
|
|
1238
|
-
blendMode: descriptor_1.BlnM.decode(f.blendOptions['Md ']),
|
|
1239
|
-
enabled: f.enab,
|
|
1240
|
-
hasOptions: f.hasoptions,
|
|
1241
|
-
foregroundColor: (0, descriptor_1.parseColor)(f.FrgC),
|
|
1242
|
-
backgroundColor: (0, descriptor_1.parseColor)(f.BckC),
|
|
1243
|
-
filter: parseFilterFXFilter(f.Fltr),
|
|
1244
|
-
}); }),
|
|
1523
|
+
list: desc.filterFXList.map(parseFilterFXItem),
|
|
1245
1524
|
};
|
|
1246
1525
|
}
|
|
1247
|
-
function
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1526
|
+
function uvRadius(t) {
|
|
1527
|
+
return (0, descriptor_1.unitsValue)(t.radius, 'radius');
|
|
1528
|
+
}
|
|
1529
|
+
function serializeFilterFXItem(f) {
|
|
1530
|
+
var base = {
|
|
1531
|
+
_name: '',
|
|
1532
|
+
_classID: 'filterFX',
|
|
1533
|
+
'Nm ': f.name,
|
|
1534
|
+
blendOptions: {
|
|
1535
|
+
_name: '',
|
|
1536
|
+
_classID: 'blendOptions',
|
|
1537
|
+
Opct: (0, descriptor_1.unitsPercentF)(f.opacity),
|
|
1538
|
+
'Md ': descriptor_1.BlnM.encode(f.blendMode),
|
|
1539
|
+
},
|
|
1540
|
+
enab: f.enabled,
|
|
1541
|
+
hasoptions: f.hasOptions,
|
|
1542
|
+
FrgC: (0, descriptor_1.serializeColor)(f.foregroundColor),
|
|
1543
|
+
BckC: (0, descriptor_1.serializeColor)(f.backgroundColor),
|
|
1544
|
+
};
|
|
1545
|
+
switch (f.type) {
|
|
1546
|
+
case 'average': return __assign(__assign({}, base), { filterID: 1098281575 });
|
|
1547
|
+
case 'blur': return __assign(__assign({}, base), { filterID: 1114403360 });
|
|
1548
|
+
case 'blur more': return __assign(__assign({}, base), { filterID: 1114403405 });
|
|
1549
|
+
case 'box blur': return __assign(__assign({}, base), { Fltr: {
|
|
1550
|
+
_name: 'Box Blur',
|
|
1551
|
+
_classID: 'boxblur',
|
|
1552
|
+
'Rds ': uvRadius(f.filter),
|
|
1553
|
+
}, filterID: 697 });
|
|
1554
|
+
case 'gaussian blur': return __assign(__assign({}, base), { Fltr: {
|
|
1555
|
+
_name: 'Gaussian Blur',
|
|
1556
|
+
_classID: 'GsnB',
|
|
1557
|
+
'Rds ': uvRadius(f.filter),
|
|
1558
|
+
}, filterID: 1198747202 });
|
|
1559
|
+
case 'motion blur': return __assign(__assign({}, base), { Fltr: {
|
|
1560
|
+
_name: 'Motion Blur',
|
|
1561
|
+
_classID: 'MtnB',
|
|
1562
|
+
Angl: f.filter.angle,
|
|
1563
|
+
Dstn: (0, descriptor_1.unitsValue)(f.filter.distance, 'distance'),
|
|
1564
|
+
}, filterID: 1299476034 });
|
|
1565
|
+
case 'radial blur': return __assign(__assign({}, base), { Fltr: {
|
|
1566
|
+
_name: 'Radial Blur',
|
|
1567
|
+
_classID: 'RdlB',
|
|
1568
|
+
Amnt: f.filter.amount,
|
|
1569
|
+
BlrM: descriptor_1.BlrM.encode(f.filter.method),
|
|
1570
|
+
BlrQ: descriptor_1.BlrQ.encode(f.filter.quality),
|
|
1571
|
+
}, filterID: 1382313026 });
|
|
1572
|
+
case 'shape blur': return __assign(__assign({}, base), { Fltr: {
|
|
1573
|
+
_name: 'Shape Blur',
|
|
1574
|
+
_classID: 'shapeBlur',
|
|
1575
|
+
'Rds ': uvRadius(f.filter),
|
|
1576
|
+
customShape: {
|
|
1577
|
+
_name: '',
|
|
1578
|
+
_classID: 'customShape',
|
|
1579
|
+
'Nm ': f.filter.customShape.name,
|
|
1580
|
+
Idnt: f.filter.customShape.id,
|
|
1581
|
+
}
|
|
1582
|
+
}, filterID: 702 });
|
|
1583
|
+
case 'smart blur': return __assign(__assign({}, base), { Fltr: {
|
|
1584
|
+
_name: 'Smart Blur',
|
|
1585
|
+
_classID: 'SmrB',
|
|
1586
|
+
'Rds ': f.filter.radius,
|
|
1587
|
+
Thsh: f.filter.threshold,
|
|
1588
|
+
SmBQ: descriptor_1.SmBQ.encode(f.filter.quality),
|
|
1589
|
+
SmBM: descriptor_1.SmBM.encode(f.filter.mode),
|
|
1590
|
+
}, filterID: 1399681602 });
|
|
1591
|
+
case 'surface blur': return __assign(__assign({}, base), { Fltr: {
|
|
1592
|
+
_name: 'Surface Blur',
|
|
1593
|
+
_classID: 'surfaceBlur',
|
|
1594
|
+
'Rds ': uvRadius(f.filter),
|
|
1595
|
+
Thsh: f.filter.threshold,
|
|
1596
|
+
}, filterID: 701 });
|
|
1597
|
+
case 'displace': return __assign(__assign({}, base), { Fltr: {
|
|
1598
|
+
_name: 'Displace',
|
|
1599
|
+
_classID: 'Dspl',
|
|
1600
|
+
HrzS: f.filter.horizontalScale,
|
|
1601
|
+
VrtS: f.filter.verticalScale,
|
|
1602
|
+
DspM: descriptor_1.DspM.encode(f.filter.displacementMap),
|
|
1603
|
+
UndA: descriptor_1.UndA.encode(f.filter.undefinedAreas),
|
|
1604
|
+
DspF: {
|
|
1605
|
+
sig: f.filter.displacementFile.signature,
|
|
1606
|
+
path: f.filter.displacementFile.path,
|
|
1607
|
+
},
|
|
1608
|
+
}, filterID: 1148416108 });
|
|
1609
|
+
case 'pinch': return __assign(__assign({}, base), { Fltr: {
|
|
1610
|
+
_name: 'Pinch',
|
|
1611
|
+
_classID: 'Pnch',
|
|
1612
|
+
Amnt: f.filter.amount,
|
|
1613
|
+
}, filterID: 1349411688 });
|
|
1614
|
+
case 'polar coordinates': return __assign(__assign({}, base), { Fltr: {
|
|
1615
|
+
_name: 'Polar Coordinates',
|
|
1616
|
+
_classID: 'Plr ',
|
|
1617
|
+
Cnvr: descriptor_1.Cnvr.encode(f.filter.conversion),
|
|
1618
|
+
}, filterID: 1349284384 });
|
|
1619
|
+
case 'ripple': return __assign(__assign({}, base), { Fltr: {
|
|
1620
|
+
_name: 'Ripple',
|
|
1621
|
+
_classID: 'Rple',
|
|
1622
|
+
Amnt: f.filter.amount,
|
|
1623
|
+
RplS: descriptor_1.RplS.encode(f.filter.size),
|
|
1624
|
+
}, filterID: 1383099493 });
|
|
1625
|
+
case 'shear': return __assign(__assign({}, base), { Fltr: {
|
|
1626
|
+
_name: 'Shear',
|
|
1627
|
+
_classID: 'Shr ',
|
|
1628
|
+
ShrP: f.filter.shearPoints.map(function (p) { return ({ _name: '', _classID: 'Pnt ', Hrzn: p.x, Vrtc: p.y }); }),
|
|
1629
|
+
UndA: descriptor_1.UndA.encode(f.filter.undefinedAreas),
|
|
1630
|
+
ShrS: f.filter.shearStart,
|
|
1631
|
+
ShrE: f.filter.shearEnd,
|
|
1632
|
+
}, filterID: 1399353888 });
|
|
1633
|
+
case 'spherize': return __assign(__assign({}, base), { Fltr: {
|
|
1634
|
+
_name: 'Spherize',
|
|
1635
|
+
_classID: 'Sphr',
|
|
1636
|
+
Amnt: f.filter.amount,
|
|
1637
|
+
SphM: descriptor_1.SphM.encode(f.filter.mode),
|
|
1638
|
+
}, filterID: 1399875698 });
|
|
1639
|
+
case 'twirl': return __assign(__assign({}, base), { Fltr: {
|
|
1640
|
+
_name: 'Twirl',
|
|
1641
|
+
_classID: 'Twrl',
|
|
1642
|
+
Angl: f.filter.angle,
|
|
1643
|
+
}, filterID: 1417114220 });
|
|
1644
|
+
case 'wave': return __assign(__assign({}, base), { Fltr: {
|
|
1645
|
+
_name: 'Wave',
|
|
1646
|
+
_classID: 'Wave',
|
|
1647
|
+
Wvtp: descriptor_1.Wvtp.encode(f.filter.type),
|
|
1648
|
+
NmbG: f.filter.numberOfGenerators,
|
|
1649
|
+
WLMn: f.filter.wavelength.min,
|
|
1650
|
+
WLMx: f.filter.wavelength.max,
|
|
1651
|
+
AmMn: f.filter.amplitude.min,
|
|
1652
|
+
AmMx: f.filter.amplitude.max,
|
|
1653
|
+
SclH: f.filter.scale.x,
|
|
1654
|
+
SclV: f.filter.scale.y,
|
|
1655
|
+
UndA: descriptor_1.UndA.encode(f.filter.undefinedAreas),
|
|
1656
|
+
RndS: f.filter.randomSeed,
|
|
1657
|
+
}, filterID: 1466005093 });
|
|
1658
|
+
case 'zigzag': return __assign(__assign({}, base), { Fltr: {
|
|
1659
|
+
_name: 'ZigZag',
|
|
1660
|
+
_classID: 'ZgZg',
|
|
1661
|
+
Amnt: f.filter.amount,
|
|
1662
|
+
NmbR: f.filter.ridges,
|
|
1663
|
+
ZZTy: descriptor_1.ZZTy.encode(f.filter.style),
|
|
1664
|
+
}, filterID: 1516722791 });
|
|
1665
|
+
case 'add noise': return __assign(__assign({}, base), { Fltr: {
|
|
1666
|
+
_name: 'Add Noise',
|
|
1667
|
+
_classID: 'AdNs',
|
|
1668
|
+
Dstr: descriptor_1.Dstr.encode(f.filter.distribution),
|
|
1669
|
+
Nose: (0, descriptor_1.unitsPercentF)(f.filter.amount),
|
|
1670
|
+
Mnch: f.filter.monochromatic,
|
|
1671
|
+
FlRs: f.filter.randomSeed,
|
|
1672
|
+
}, filterID: 1097092723 });
|
|
1673
|
+
case 'despeckle': return __assign(__assign({}, base), { filterID: 1148416099 });
|
|
1674
|
+
case 'dust and scratches': return __assign(__assign({}, base), { Fltr: {
|
|
1675
|
+
_name: 'Dust & Scratches',
|
|
1676
|
+
_classID: 'DstS',
|
|
1677
|
+
'Rds ': f.filter.radius,
|
|
1678
|
+
Thsh: f.filter.threshold,
|
|
1679
|
+
}, filterID: 1148417107 });
|
|
1680
|
+
case 'median': return __assign(__assign({}, base), { Fltr: {
|
|
1681
|
+
_name: 'Median',
|
|
1682
|
+
_classID: 'Mdn ',
|
|
1683
|
+
'Rds ': uvRadius(f.filter),
|
|
1684
|
+
}, filterID: 1298427424 });
|
|
1685
|
+
case 'reduce noise': return __assign(__assign({}, base), { Fltr: {
|
|
1686
|
+
_name: 'Reduce Noise',
|
|
1687
|
+
_classID: 'denoise',
|
|
1688
|
+
ClNs: (0, descriptor_1.unitsPercentF)(f.filter.reduceColorNoise),
|
|
1689
|
+
Shrp: (0, descriptor_1.unitsPercentF)(f.filter.sharpenDetails),
|
|
1690
|
+
removeJPEGArtifact: f.filter.removeJpegArtifact,
|
|
1691
|
+
channelDenoise: f.filter.channelDenoise.map(function (c) { return (__assign({ _name: '', _classID: 'channelDenoiseParams', Chnl: c.channels.map(function (i) { return descriptor_1.Chnl.encode(i); }), Amnt: c.amount }, (c.preserveDetails ? { EdgF: c.preserveDetails } : {}))); }),
|
|
1692
|
+
preset: f.filter.preset,
|
|
1693
|
+
}, filterID: 633 });
|
|
1694
|
+
case 'color halftone': return __assign(__assign({}, base), { Fltr: {
|
|
1695
|
+
_name: 'Color Halftone',
|
|
1696
|
+
_classID: 'ClrH',
|
|
1697
|
+
'Rds ': f.filter.radius,
|
|
1698
|
+
Ang1: f.filter.angle1,
|
|
1699
|
+
Ang2: f.filter.angle2,
|
|
1700
|
+
Ang3: f.filter.angle3,
|
|
1701
|
+
Ang4: f.filter.angle4,
|
|
1702
|
+
}, filterID: 1131180616 });
|
|
1703
|
+
case 'crystallize': return __assign(__assign({}, base), { Fltr: {
|
|
1704
|
+
_name: 'Crystallize',
|
|
1705
|
+
_classID: 'Crst',
|
|
1706
|
+
ClSz: f.filter.cellSize,
|
|
1707
|
+
FlRs: f.filter.randomSeed,
|
|
1708
|
+
}, filterID: 1131574132 });
|
|
1709
|
+
case 'facet': return __assign(__assign({}, base), { filterID: 1180922912 });
|
|
1710
|
+
case 'fragment': return __assign(__assign({}, base), { filterID: 1181902701 });
|
|
1711
|
+
case 'mezzotint': return __assign(__assign({}, base), { Fltr: {
|
|
1712
|
+
_name: 'Mezzotint',
|
|
1713
|
+
_classID: 'Mztn',
|
|
1714
|
+
MztT: descriptor_1.MztT.encode(f.filter.type),
|
|
1715
|
+
FlRs: f.filter.randomSeed,
|
|
1716
|
+
}, filterID: 1299870830 });
|
|
1717
|
+
case 'mosaic': return __assign(__assign({}, base), { Fltr: {
|
|
1718
|
+
_name: 'Mosaic',
|
|
1719
|
+
_classID: 'Msc ',
|
|
1720
|
+
ClSz: (0, descriptor_1.unitsValue)(f.filter.cellSize, 'cellSize'),
|
|
1721
|
+
}, filterID: 1299407648 });
|
|
1722
|
+
case 'pointillize': return __assign(__assign({}, base), { Fltr: {
|
|
1723
|
+
_name: 'Pointillize',
|
|
1724
|
+
_classID: 'Pntl',
|
|
1725
|
+
ClSz: f.filter.cellSize,
|
|
1726
|
+
FlRs: f.filter.randomSeed,
|
|
1727
|
+
}, filterID: 1349416044 });
|
|
1728
|
+
case 'clouds': return __assign(__assign({}, base), { Fltr: {
|
|
1729
|
+
_name: 'Clouds',
|
|
1730
|
+
_classID: 'Clds',
|
|
1731
|
+
FlRs: f.filter.randomSeed,
|
|
1732
|
+
}, filterID: 1131177075 });
|
|
1733
|
+
case 'difference clouds': return __assign(__assign({}, base), { Fltr: {
|
|
1734
|
+
_name: 'Difference Clouds',
|
|
1735
|
+
_classID: 'DfrC',
|
|
1736
|
+
FlRs: f.filter.randomSeed,
|
|
1737
|
+
}, filterID: 1147564611 });
|
|
1738
|
+
case 'fibers': return __assign(__assign({}, base), { Fltr: {
|
|
1739
|
+
_name: 'Fibers',
|
|
1740
|
+
_classID: 'Fbrs',
|
|
1741
|
+
Vrnc: f.filter.variance,
|
|
1742
|
+
Strg: f.filter.strength,
|
|
1743
|
+
RndS: f.filter.randomSeed,
|
|
1744
|
+
}, filterID: 1180856947 });
|
|
1745
|
+
case 'lens flare': return __assign(__assign({}, base), { Fltr: {
|
|
1746
|
+
_name: 'Lens Flare',
|
|
1747
|
+
_classID: 'LnsF',
|
|
1748
|
+
Brgh: f.filter.brightness,
|
|
1749
|
+
FlrC: {
|
|
1750
|
+
_name: '',
|
|
1751
|
+
_classID: 'Pnt ',
|
|
1752
|
+
Hrzn: f.filter.position.x,
|
|
1753
|
+
Vrtc: f.filter.position.y,
|
|
1754
|
+
},
|
|
1755
|
+
'Lns ': descriptor_1.Lns.encode(f.filter.lensType),
|
|
1756
|
+
}, filterID: 1282306886 });
|
|
1757
|
+
case 'sharpen': return __assign(__assign({}, base), { filterID: 1399353968 });
|
|
1758
|
+
case 'sharpen edges': return __assign(__assign({}, base), { filterID: 1399353925 });
|
|
1759
|
+
case 'sharpen more': return __assign(__assign({}, base), { filterID: 1399353933 });
|
|
1760
|
+
case 'smart sharpen': return __assign(__assign({}, base), { Fltr: {
|
|
1761
|
+
_name: 'Smart Sharpen',
|
|
1762
|
+
_classID: 'smartSharpen',
|
|
1763
|
+
Amnt: (0, descriptor_1.unitsPercentF)(f.filter.amount),
|
|
1764
|
+
'Rds ': uvRadius(f.filter),
|
|
1765
|
+
Thsh: f.filter.threshold,
|
|
1766
|
+
Angl: f.filter.angle,
|
|
1767
|
+
moreAccurate: f.filter.moreAccurate,
|
|
1768
|
+
blur: descriptor_1.blurType.encode(f.filter.blur),
|
|
1769
|
+
preset: f.filter.preset,
|
|
1770
|
+
sdwM: {
|
|
1771
|
+
_name: 'Parameters',
|
|
1772
|
+
_classID: 'adaptCorrectTones',
|
|
1773
|
+
Amnt: (0, descriptor_1.unitsPercentF)(f.filter.shadow.fadeAmount),
|
|
1774
|
+
Wdth: (0, descriptor_1.unitsPercentF)(f.filter.shadow.tonalWidth),
|
|
1775
|
+
'Rds ': f.filter.shadow.radius,
|
|
1776
|
+
},
|
|
1777
|
+
hglM: {
|
|
1778
|
+
_name: 'Parameters',
|
|
1779
|
+
_classID: 'adaptCorrectTones',
|
|
1780
|
+
Amnt: (0, descriptor_1.unitsPercentF)(f.filter.highlight.fadeAmount),
|
|
1781
|
+
Wdth: (0, descriptor_1.unitsPercentF)(f.filter.highlight.tonalWidth),
|
|
1782
|
+
'Rds ': f.filter.highlight.radius,
|
|
1783
|
+
},
|
|
1784
|
+
}, filterID: 698 });
|
|
1785
|
+
case 'unsharp mask': return __assign(__assign({}, base), { Fltr: {
|
|
1786
|
+
_name: 'Unsharp Mask',
|
|
1787
|
+
_classID: 'UnsM',
|
|
1788
|
+
Amnt: (0, descriptor_1.unitsPercentF)(f.filter.amount),
|
|
1789
|
+
'Rds ': uvRadius(f.filter),
|
|
1790
|
+
Thsh: f.filter.threshold,
|
|
1791
|
+
}, filterID: 1433301837 });
|
|
1792
|
+
case 'diffuse': return __assign(__assign({}, base), { Fltr: {
|
|
1793
|
+
_name: 'Diffuse',
|
|
1794
|
+
_classID: 'Dfs ',
|
|
1795
|
+
'Md ': descriptor_1.DfsM.encode(f.filter.mode),
|
|
1796
|
+
FlRs: f.filter.randomSeed,
|
|
1797
|
+
}, filterID: 1147564832 });
|
|
1798
|
+
case 'emboss': return __assign(__assign({}, base), { Fltr: {
|
|
1799
|
+
_name: 'Emboss',
|
|
1800
|
+
_classID: 'Embs',
|
|
1801
|
+
Angl: f.filter.angle,
|
|
1802
|
+
Hght: f.filter.height,
|
|
1803
|
+
Amnt: f.filter.amount,
|
|
1804
|
+
}, filterID: 1164796531 });
|
|
1805
|
+
case 'extrude': return __assign(__assign({}, base), { Fltr: {
|
|
1806
|
+
_name: 'Extrude',
|
|
1807
|
+
_classID: 'Extr',
|
|
1808
|
+
ExtS: f.filter.size,
|
|
1809
|
+
ExtD: f.filter.depth,
|
|
1810
|
+
ExtF: f.filter.solidFrontFaces,
|
|
1811
|
+
ExtM: f.filter.maskIncompleteBlocks,
|
|
1812
|
+
ExtT: descriptor_1.ExtT.encode(f.filter.type),
|
|
1813
|
+
ExtR: descriptor_1.ExtR.encode(f.filter.depthMode),
|
|
1814
|
+
FlRs: f.filter.randomSeed,
|
|
1815
|
+
}, filterID: 1165522034 });
|
|
1816
|
+
case 'find edges': return __assign(__assign({}, base), { filterID: 1181639749 });
|
|
1817
|
+
case 'solarize': return __assign(__assign({}, base), { filterID: 1399616122 });
|
|
1818
|
+
case 'tiles': return __assign(__assign({}, base), { Fltr: {
|
|
1819
|
+
_name: 'Tiles',
|
|
1820
|
+
_classID: 'Tls ',
|
|
1821
|
+
TlNm: f.filter.numberOfTiles,
|
|
1822
|
+
TlOf: f.filter.maximumOffset,
|
|
1823
|
+
FlCl: descriptor_1.FlCl.encode(f.filter.fillEmptyAreaWith),
|
|
1824
|
+
FlRs: f.filter.randomSeed,
|
|
1825
|
+
}, filterID: 1416393504 });
|
|
1826
|
+
case 'trace contour': return __assign(__assign({}, base), { Fltr: {
|
|
1827
|
+
_name: 'Trace Contour',
|
|
1828
|
+
_classID: 'TrcC',
|
|
1829
|
+
'Lvl ': f.filter.level,
|
|
1830
|
+
'Edg ': descriptor_1.CntE.encode(f.filter.edge),
|
|
1831
|
+
}, filterID: 1416782659 });
|
|
1832
|
+
case 'wind': return __assign(__assign({}, base), { Fltr: {
|
|
1833
|
+
_name: 'Wind',
|
|
1834
|
+
_classID: 'Wnd ',
|
|
1835
|
+
WndM: descriptor_1.WndM.encode(f.filter.method),
|
|
1836
|
+
Drct: descriptor_1.Drct.encode(f.filter.direction),
|
|
1837
|
+
}, filterID: 1466852384 });
|
|
1838
|
+
case 'de-interlace': return __assign(__assign({}, base), { Fltr: {
|
|
1839
|
+
_name: 'De-Interlace',
|
|
1840
|
+
_classID: 'Dntr',
|
|
1841
|
+
IntE: descriptor_1.IntE.encode(f.filter.eliminate),
|
|
1842
|
+
IntC: descriptor_1.IntC.encode(f.filter.newFieldsBy),
|
|
1843
|
+
}, filterID: 1148089458 });
|
|
1844
|
+
case 'ntsc colors': return __assign(__assign({}, base), { filterID: 1314149187 });
|
|
1845
|
+
case 'custom': return __assign(__assign({}, base), { Fltr: {
|
|
1846
|
+
_name: 'Custom',
|
|
1847
|
+
_classID: 'Cstm',
|
|
1848
|
+
'Scl ': f.filter.scale,
|
|
1849
|
+
Ofst: f.filter.offset,
|
|
1850
|
+
Mtrx: f.filter.matrix,
|
|
1851
|
+
}, filterID: 1131639917 });
|
|
1852
|
+
case 'high pass': return __assign(__assign({}, base), { Fltr: {
|
|
1853
|
+
_name: 'High Pass',
|
|
1854
|
+
_classID: 'HghP',
|
|
1855
|
+
'Rds ': uvRadius(f.filter),
|
|
1856
|
+
}, filterID: 1214736464 });
|
|
1857
|
+
case 'maximum': return __assign(__assign({}, base), { Fltr: {
|
|
1858
|
+
_name: 'Maximum',
|
|
1859
|
+
_classID: 'Mxm ',
|
|
1860
|
+
'Rds ': uvRadius(f.filter),
|
|
1861
|
+
}, filterID: 1299737888 });
|
|
1862
|
+
case 'minimum': return __assign(__assign({}, base), { Fltr: {
|
|
1863
|
+
_name: 'Minimum',
|
|
1864
|
+
_classID: 'Mnm ',
|
|
1865
|
+
'Rds ': uvRadius(f.filter),
|
|
1866
|
+
}, filterID: 1299082528 });
|
|
1867
|
+
case 'offset': return __assign(__assign({}, base), { Fltr: {
|
|
1868
|
+
_name: 'Offset',
|
|
1869
|
+
_classID: 'Ofst',
|
|
1870
|
+
Hrzn: f.filter.horizontal,
|
|
1871
|
+
Vrtc: f.filter.vertical,
|
|
1872
|
+
'Fl ': descriptor_1.FlMd.encode(f.filter.undefinedAreas),
|
|
1873
|
+
}, filterID: 1332114292 });
|
|
1874
|
+
case 'puppet': return __assign(__assign({}, base), { Fltr: {
|
|
1875
|
+
_name: 'Rigid Transform',
|
|
1876
|
+
_classID: 'rigidTransform',
|
|
1877
|
+
'null': ['Ordn.Trgt'],
|
|
1878
|
+
rigidType: f.filter.rigidType,
|
|
1879
|
+
puppetShapeList: f.filter.puppetShapeList.map(function (p) { return ({
|
|
1880
|
+
_name: '',
|
|
1881
|
+
_classID: 'puppetShape',
|
|
1882
|
+
rigidType: p.rigidType,
|
|
1883
|
+
VrsM: 1,
|
|
1884
|
+
VrsN: 0,
|
|
1885
|
+
originalVertexArray: toUint8(new Float32Array(pointsToArray(p.originalVertexArray))),
|
|
1886
|
+
deformedVertexArray: toUint8(new Float32Array(pointsToArray(p.deformedVertexArray))),
|
|
1887
|
+
indexArray: toUint8(new Uint32Array(p.indexArray)),
|
|
1888
|
+
pinOffsets: pointsToArray(p.pinOffsets),
|
|
1889
|
+
posFinalPins: pointsToArray(p.posFinalPins),
|
|
1890
|
+
pinVertexIndices: p.pinVertexIndices,
|
|
1891
|
+
PinP: pointsToArray(p.pinPosition),
|
|
1892
|
+
PnRt: p.pinRotation,
|
|
1893
|
+
PnOv: p.pinOverlay,
|
|
1894
|
+
PnDp: p.pinDepth,
|
|
1895
|
+
meshQuality: p.meshQuality,
|
|
1896
|
+
meshExpansion: p.meshExpansion,
|
|
1897
|
+
meshRigidity: p.meshRigidity,
|
|
1898
|
+
imageResolution: p.imageResolution,
|
|
1899
|
+
meshBoundaryPath: {
|
|
1900
|
+
_name: '',
|
|
1901
|
+
_classID: 'pathClass',
|
|
1902
|
+
pathComponents: p.meshBoundaryPath.pathComponents.map(function (c) { return ({
|
|
1903
|
+
_name: '',
|
|
1904
|
+
_classID: 'PaCm',
|
|
1905
|
+
shapeOperation: "shapeOperation.".concat(c.shapeOperation),
|
|
1906
|
+
SbpL: c.paths.map(function (path) { return ({
|
|
1907
|
+
_name: '',
|
|
1908
|
+
_classID: 'Sbpl',
|
|
1909
|
+
Clsp: path.closed,
|
|
1910
|
+
'Pts ': path.points.map(function (pt) { return ({
|
|
1911
|
+
_name: '',
|
|
1912
|
+
_classID: 'Pthp',
|
|
1913
|
+
Anch: pointToHrznVrtc(pt.anchor),
|
|
1914
|
+
'Fwd ': pointToHrznVrtc(pt.forward),
|
|
1915
|
+
'Bwd ': pointToHrznVrtc(pt.backward),
|
|
1916
|
+
Smoo: pt.smooth,
|
|
1917
|
+
}); }),
|
|
1281
1918
|
}); }),
|
|
1282
1919
|
}); }),
|
|
1283
|
-
}
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1920
|
+
},
|
|
1921
|
+
selectedPin: p.selectedPin,
|
|
1922
|
+
}); }),
|
|
1923
|
+
PuX0: f.filter.bounds[0].x,
|
|
1924
|
+
PuX1: f.filter.bounds[1].x,
|
|
1925
|
+
PuX2: f.filter.bounds[2].x,
|
|
1926
|
+
PuX3: f.filter.bounds[3].x,
|
|
1927
|
+
PuY0: f.filter.bounds[0].y,
|
|
1928
|
+
PuY1: f.filter.bounds[1].y,
|
|
1929
|
+
PuY2: f.filter.bounds[2].y,
|
|
1930
|
+
PuY3: f.filter.bounds[3].y,
|
|
1931
|
+
}, filterID: 991 });
|
|
1932
|
+
case 'oil paint plugin': {
|
|
1933
|
+
var params = {};
|
|
1934
|
+
for (var i = 0; i < f.filter.parameters.length; i++) {
|
|
1935
|
+
var _a = f.filter.parameters[i], name_1 = _a.name, value = _a.value;
|
|
1936
|
+
var suffix = "".concat(fromAtoZ[Math.floor(i / fromAtoZ.length)]).concat(fromAtoZ[i % fromAtoZ.length]);
|
|
1937
|
+
params["PN".concat(suffix)] = name_1;
|
|
1938
|
+
params["PT".concat(suffix)] = 0;
|
|
1939
|
+
params["PF".concat(suffix)] = value;
|
|
1940
|
+
}
|
|
1941
|
+
return __assign(__assign({}, base), { Fltr: __assign({ _name: 'Oil Paint Plugin', _classID: 'PbPl', KnNm: f.filter.name, GpuY: f.filter.gpu, LIWy: f.filter.lighting, FPth: '1' }, params), filterID: 1348620396 });
|
|
1942
|
+
}
|
|
1943
|
+
case 'oil paint': return __assign(__assign({}, base), { Fltr: {
|
|
1944
|
+
_name: 'Oil Paint',
|
|
1945
|
+
_classID: 'oilPaint',
|
|
1946
|
+
lightingOn: f.filter.lightingOn,
|
|
1947
|
+
stylization: f.filter.stylization,
|
|
1948
|
+
cleanliness: f.filter.cleanliness,
|
|
1949
|
+
brushScale: f.filter.brushScale,
|
|
1950
|
+
microBrush: f.filter.microBrush,
|
|
1951
|
+
LghD: f.filter.lightDirection,
|
|
1952
|
+
specularity: f.filter.specularity,
|
|
1953
|
+
}, filterID: 1122 });
|
|
1954
|
+
case 'liquify': return __assign(__assign({}, base), { Fltr: {
|
|
1955
|
+
_name: 'Liquify',
|
|
1956
|
+
_classID: 'LqFy',
|
|
1957
|
+
LqMe: f.filter.liquifyMesh,
|
|
1958
|
+
}, filterID: 1282492025 });
|
|
1959
|
+
default: throw new Error("Unknow filter type: ".concat(f.type));
|
|
1300
1960
|
}
|
|
1301
1961
|
}
|
|
1302
|
-
|
|
1303
|
-
return {
|
|
1304
|
-
enab: filter.enabled,
|
|
1305
|
-
validAtPosition: filter.validAtPosition,
|
|
1306
|
-
filterMaskEnable: filter.maskEnabled,
|
|
1307
|
-
filterMaskLinked: filter.maskLinked,
|
|
1308
|
-
filterMaskExtendWithWhite: filter.maskExtendWithWhite,
|
|
1309
|
-
filterFXList: (filter.list || []).map(function (f) { return ({
|
|
1310
|
-
'Nm ': f.name,
|
|
1311
|
-
blendOptions: {
|
|
1312
|
-
Opct: (0, descriptor_1.unitsPercent)(f.opacity),
|
|
1313
|
-
'Md ': descriptor_1.BlnM.encode(f.blendMode),
|
|
1314
|
-
},
|
|
1315
|
-
enab: f.enabled,
|
|
1316
|
-
hasoptions: f.hasOptions,
|
|
1317
|
-
FrgC: (0, descriptor_1.serializeColor)(f.foregroundColor),
|
|
1318
|
-
BckC: (0, descriptor_1.serializeColor)(f.backgroundColor),
|
|
1319
|
-
Fltr: serializeFltr(f.filter),
|
|
1320
|
-
filterID: f.id,
|
|
1321
|
-
}); }),
|
|
1322
|
-
};
|
|
1323
|
-
}
|
|
1962
|
+
// let t: any;
|
|
1324
1963
|
addHandler('SoLd', hasKey('placedLayer'), function (reader, target, left) {
|
|
1325
1964
|
if ((0, psdReader_1.readSignature)(reader) !== 'soLD')
|
|
1326
1965
|
throw new Error("Invalid SoLd type");
|
|
@@ -1332,15 +1971,17 @@ addHandler('SoLd', hasKey('placedLayer'), function (reader, target, left) {
|
|
|
1332
1971
|
// console.log('SoLd.warp', require('util').inspect(desc.warp, false, 99, true));
|
|
1333
1972
|
// console.log('SoLd.quiltWarp', require('util').inspect(desc.quiltWarp, false, 99, true));
|
|
1334
1973
|
// desc.filterFX!.filterFXList[0].Fltr.puppetShapeList[0].meshBoundaryPath.pathComponents[0].SbpL[0]['Pts '] = [];
|
|
1335
|
-
// console.log('
|
|
1974
|
+
// console.log('read', require('util').inspect(desc.filterFX, false, 99, true));
|
|
1975
|
+
// console.log('filterFXList[0]', require('util').inspect((desc as any).filterFX.filterFXList[0], false, 99, true));
|
|
1976
|
+
// t = desc;
|
|
1336
1977
|
target.placedLayer = {
|
|
1337
1978
|
id: desc.Idnt,
|
|
1338
1979
|
placed: desc.placed,
|
|
1339
1980
|
type: placedLayerTypes[desc.Type],
|
|
1340
1981
|
pageNumber: desc.PgNm,
|
|
1341
1982
|
totalPages: desc.totalPages,
|
|
1342
|
-
frameStep: desc.frameStep,
|
|
1343
|
-
duration: desc.duration,
|
|
1983
|
+
frameStep: (0, descriptor_1.frac)(desc.frameStep),
|
|
1984
|
+
duration: (0, descriptor_1.frac)(desc.duration),
|
|
1344
1985
|
frameCount: desc.frameCount,
|
|
1345
1986
|
transform: desc.Trnf,
|
|
1346
1987
|
width: desc['Sz '].Wdth,
|
|
@@ -1355,22 +1996,48 @@ addHandler('SoLd', hasKey('placedLayer'), function (reader, target, left) {
|
|
|
1355
1996
|
target.placedLayer.crop = desc.Crop;
|
|
1356
1997
|
if (desc.comp)
|
|
1357
1998
|
target.placedLayer.comp = desc.comp;
|
|
1358
|
-
if (desc.compInfo)
|
|
1359
|
-
target.placedLayer.compInfo =
|
|
1999
|
+
if (desc.compInfo) {
|
|
2000
|
+
target.placedLayer.compInfo = {
|
|
2001
|
+
compID: desc.compInfo.compID,
|
|
2002
|
+
originalCompID: desc.compInfo.originalCompID,
|
|
2003
|
+
};
|
|
2004
|
+
}
|
|
1360
2005
|
if (desc.filterFX)
|
|
1361
2006
|
target.placedLayer.filter = parseFilterFX(desc.filterFX);
|
|
2007
|
+
// console.log('filter', require('util').inspect(target.placedLayer.filter, false, 99, true));
|
|
1362
2008
|
(0, psdReader_1.skipBytes)(reader, left()); // HACK
|
|
1363
2009
|
}, function (writer, target) {
|
|
1364
2010
|
var _a, _b;
|
|
1365
2011
|
(0, psdWriter_1.writeSignature)(writer, 'soLD');
|
|
1366
2012
|
(0, psdWriter_1.writeInt32)(writer, 4); // version
|
|
1367
2013
|
var placed = target.placedLayer;
|
|
1368
|
-
var desc = __assign(__assign({ Idnt: placed.id, placed: (_a = placed.placed) !== null && _a !== void 0 ? _a : placed.id, PgNm: placed.pageNumber || 1, totalPages: placed.totalPages || 1 }, (placed.crop ? { Crop: placed.crop } : {})), { frameStep: placed.frameStep || { numerator: 0, denominator: 600 }, duration: placed.duration || { numerator: 0, denominator: 600 }, frameCount: placed.frameCount || 0, Annt: 16, Type: placedLayerTypes.indexOf(placed.type), Trnf: placed.transform, nonAffineTransform: (_b = placed.nonAffineTransform) !== null && _b !== void 0 ? _b : placed.transform,
|
|
2014
|
+
var desc = __assign(__assign({ Idnt: placed.id, placed: (_a = placed.placed) !== null && _a !== void 0 ? _a : placed.id, PgNm: placed.pageNumber || 1, totalPages: placed.totalPages || 1 }, (placed.crop ? { Crop: placed.crop } : {})), { frameStep: placed.frameStep || { numerator: 0, denominator: 600 }, duration: placed.duration || { numerator: 0, denominator: 600 }, frameCount: placed.frameCount || 0, Annt: 16, Type: placedLayerTypes.indexOf(placed.type), Trnf: placed.transform, nonAffineTransform: (_b = placed.nonAffineTransform) !== null && _b !== void 0 ? _b : placed.transform,
|
|
2015
|
+
// quiltWarp: {} as any,
|
|
2016
|
+
warp: encodeWarp(placed.warp || {}), 'Sz ': {
|
|
2017
|
+
_name: '',
|
|
2018
|
+
_classID: 'Pnt ',
|
|
1369
2019
|
Wdth: placed.width || 0,
|
|
1370
2020
|
Hght: placed.height || 0, // TODO: find size ?
|
|
1371
2021
|
}, Rslt: placed.resolution ? (0, descriptor_1.unitsValue)(placed.resolution, 'resolution') : { units: 'Density', value: 72 } });
|
|
1372
|
-
if (placed.filter)
|
|
1373
|
-
desc.filterFX =
|
|
2022
|
+
if (placed.filter) {
|
|
2023
|
+
desc.filterFX = {
|
|
2024
|
+
_name: '',
|
|
2025
|
+
_classID: 'filterFXStyle',
|
|
2026
|
+
enab: placed.filter.enabled,
|
|
2027
|
+
validAtPosition: placed.filter.validAtPosition,
|
|
2028
|
+
filterMaskEnable: placed.filter.maskEnabled,
|
|
2029
|
+
filterMaskLinked: placed.filter.maskLinked,
|
|
2030
|
+
filterMaskExtendWithWhite: placed.filter.maskExtendWithWhite,
|
|
2031
|
+
filterFXList: placed.filter.list.map(function (f) { return serializeFilterFXItem(f); }),
|
|
2032
|
+
};
|
|
2033
|
+
}
|
|
2034
|
+
// console.log('write', require('util').inspect(desc.filterFX, false, 99, true)); ///
|
|
2035
|
+
// if (JSON.stringify(t) !== JSON.stringify(desc)) {
|
|
2036
|
+
// console.log('read', require('util').inspect(t, false, 99, true));
|
|
2037
|
+
// console.log('write', require('util').inspect(desc, false, 99, true));
|
|
2038
|
+
// console.error('DIFFERENT');
|
|
2039
|
+
// // throw new Error('DIFFERENT');
|
|
2040
|
+
// }
|
|
1374
2041
|
if (placed.warp && isQuiltWarp(placed.warp)) {
|
|
1375
2042
|
var quiltWarp = encodeWarp(placed.warp);
|
|
1376
2043
|
desc.quiltWarp = quiltWarp;
|
|
@@ -1456,7 +2123,7 @@ addHandler('Anno', function (target) { return target.annotations !== undefined;
|
|
|
1456
2123
|
var popupLocation = readRect(reader);
|
|
1457
2124
|
var color = (0, psdReader_1.readColor)(reader);
|
|
1458
2125
|
var author = (0, psdReader_1.readPascalString)(reader, 2);
|
|
1459
|
-
var
|
|
2126
|
+
var name_2 = (0, psdReader_1.readPascalString)(reader, 2);
|
|
1460
2127
|
var date = (0, psdReader_1.readPascalString)(reader, 2);
|
|
1461
2128
|
/*const contentLength =*/ (0, psdReader_1.readUint32)(reader);
|
|
1462
2129
|
/*const dataType =*/ (0, psdReader_1.readSignature)(reader);
|
|
@@ -1485,7 +2152,7 @@ addHandler('Anno', function (target) { return target.annotations !== undefined;
|
|
|
1485
2152
|
popupLocation: popupLocation,
|
|
1486
2153
|
color: color,
|
|
1487
2154
|
author: author,
|
|
1488
|
-
name:
|
|
2155
|
+
name: name_2,
|
|
1489
2156
|
date: date,
|
|
1490
2157
|
data: data,
|
|
1491
2158
|
});
|
|
@@ -1544,20 +2211,26 @@ addHandler('lnk2', function (target) { return !!target.linkedFiles && target.lin
|
|
|
1544
2211
|
var type = (0, psdReader_1.readSignature)(reader);
|
|
1545
2212
|
var version = (0, psdReader_1.readInt32)(reader);
|
|
1546
2213
|
var id = (0, psdReader_1.readPascalString)(reader, 1);
|
|
1547
|
-
var
|
|
2214
|
+
var name_3 = (0, psdReader_1.readUnicodeString)(reader);
|
|
1548
2215
|
var fileType = (0, psdReader_1.readSignature)(reader).trim(); // ' ' if empty
|
|
1549
2216
|
var fileCreator = (0, psdReader_1.readSignature)(reader).trim(); // ' ' or '\0\0\0\0' if empty
|
|
1550
2217
|
var dataSize = readLength64(reader);
|
|
1551
2218
|
var hasFileOpenDescriptor = (0, psdReader_1.readUint8)(reader);
|
|
1552
2219
|
var fileOpenDescriptor = hasFileOpenDescriptor ? (0, descriptor_1.readVersionAndDescriptor)(reader) : undefined;
|
|
1553
2220
|
var linkedFileDescriptor = type === 'liFE' ? (0, descriptor_1.readVersionAndDescriptor)(reader) : undefined;
|
|
1554
|
-
var file = { id: id, name:
|
|
2221
|
+
var file = { id: id, name: name_3, data: undefined };
|
|
1555
2222
|
if (fileType)
|
|
1556
2223
|
file.type = fileType;
|
|
1557
2224
|
if (fileCreator)
|
|
1558
2225
|
file.creator = fileCreator;
|
|
1559
|
-
if (fileOpenDescriptor)
|
|
1560
|
-
file.descriptor =
|
|
2226
|
+
if (fileOpenDescriptor) {
|
|
2227
|
+
file.descriptor = {
|
|
2228
|
+
compInfo: {
|
|
2229
|
+
compID: fileOpenDescriptor.compInfo.compID,
|
|
2230
|
+
originalCompID: fileOpenDescriptor.compInfo.originalCompID,
|
|
2231
|
+
}
|
|
2232
|
+
};
|
|
2233
|
+
}
|
|
1561
2234
|
if (type === 'liFE' && version > 3) {
|
|
1562
2235
|
var year = (0, psdReader_1.readInt32)(reader);
|
|
1563
2236
|
var month = (0, psdReader_1.readUint8)(reader);
|
|
@@ -1615,7 +2288,10 @@ addHandler('lnk2', function (target) { return !!target.linkedFiles && target.lin
|
|
|
1615
2288
|
writeLength64(writer, file.data ? file.data.byteLength : 0);
|
|
1616
2289
|
if (file.descriptor && file.descriptor.compInfo) {
|
|
1617
2290
|
var desc = {
|
|
1618
|
-
compInfo:
|
|
2291
|
+
compInfo: {
|
|
2292
|
+
compID: file.descriptor.compInfo.compID,
|
|
2293
|
+
originalCompID: file.descriptor.compInfo.originalCompID,
|
|
2294
|
+
}
|
|
1619
2295
|
};
|
|
1620
2296
|
(0, psdWriter_1.writeUint8)(writer, 1);
|
|
1621
2297
|
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'null', desc);
|
|
@@ -2355,6 +3031,94 @@ addHandler('Txt2', hasKey('engineData'), function (reader, target, left) {
|
|
|
2355
3031
|
var buffer = (0, base64_js_1.toByteArray)(target.engineData);
|
|
2356
3032
|
(0, psdWriter_1.writeBytes)(writer, buffer);
|
|
2357
3033
|
});
|
|
3034
|
+
addHandler('FEid', hasKey('filterEffectsMasks'), function (reader, target, leftBytes) {
|
|
3035
|
+
var version = (0, psdReader_1.readInt32)(reader);
|
|
3036
|
+
if (version < 1 || version > 3)
|
|
3037
|
+
throw new Error("Invalid filterEffects version ".concat(version));
|
|
3038
|
+
if ((0, psdReader_1.readUint32)(reader))
|
|
3039
|
+
throw new Error('filterEffects: 64 bit length is not supported');
|
|
3040
|
+
var length = (0, psdReader_1.readUint32)(reader);
|
|
3041
|
+
var end = reader.offset + length;
|
|
3042
|
+
target.filterEffectsMasks = [];
|
|
3043
|
+
while (reader.offset < end) {
|
|
3044
|
+
var id = (0, psdReader_1.readPascalString)(reader, 1);
|
|
3045
|
+
var effectVersion = (0, psdReader_1.readInt32)(reader);
|
|
3046
|
+
if (effectVersion !== 1)
|
|
3047
|
+
throw new Error("Invalid filterEffect version ".concat(effectVersion));
|
|
3048
|
+
if ((0, psdReader_1.readUint32)(reader))
|
|
3049
|
+
throw new Error('filterEffect: 64 bit length is not supported');
|
|
3050
|
+
/*const effectLength =*/ (0, psdReader_1.readUint32)(reader);
|
|
3051
|
+
// const endOfEffect = reader.offset + effectLength;
|
|
3052
|
+
var top_2 = (0, psdReader_1.readInt32)(reader);
|
|
3053
|
+
var left = (0, psdReader_1.readInt32)(reader);
|
|
3054
|
+
var bottom = (0, psdReader_1.readInt32)(reader);
|
|
3055
|
+
var right = (0, psdReader_1.readInt32)(reader);
|
|
3056
|
+
var depth = (0, psdReader_1.readInt32)(reader);
|
|
3057
|
+
var maxChannels = (0, psdReader_1.readInt32)(reader);
|
|
3058
|
+
var channels = [];
|
|
3059
|
+
// 0 -> R, 1 -> G, 2 -> B, 25 -> A
|
|
3060
|
+
for (var i = 0; i < (maxChannels + 2); i++) {
|
|
3061
|
+
var exists = (0, psdReader_1.readInt32)(reader);
|
|
3062
|
+
if (exists) {
|
|
3063
|
+
if ((0, psdReader_1.readUint32)(reader))
|
|
3064
|
+
throw new Error('filterEffect: 64 bit length is not supported');
|
|
3065
|
+
var channelLength = (0, psdReader_1.readUint32)(reader);
|
|
3066
|
+
var compressionMode = (0, psdReader_1.readUint16)(reader);
|
|
3067
|
+
var data = (0, psdReader_1.readBytes)(reader, channelLength - 2);
|
|
3068
|
+
channels.push({ compressionMode: compressionMode, data: data });
|
|
3069
|
+
}
|
|
3070
|
+
else {
|
|
3071
|
+
channels.push(undefined);
|
|
3072
|
+
}
|
|
3073
|
+
}
|
|
3074
|
+
target.filterEffectsMasks.push({ id: id, top: top_2, left: left, bottom: bottom, right: right, depth: depth, channels: channels });
|
|
3075
|
+
if (leftBytes() && (0, psdReader_1.readUint8)(reader)) {
|
|
3076
|
+
var compressionMode = (0, psdReader_1.readUint16)(reader);
|
|
3077
|
+
var data = (0, psdReader_1.readBytes)(reader, leftBytes());
|
|
3078
|
+
target.filterEffectsMasks[target.filterEffectsMasks.length - 1].extra = { compressionMode: compressionMode, data: data };
|
|
3079
|
+
}
|
|
3080
|
+
}
|
|
3081
|
+
}, function (writer, target) {
|
|
3082
|
+
var _a;
|
|
3083
|
+
(0, psdWriter_1.writeInt32)(writer, 3);
|
|
3084
|
+
(0, psdWriter_1.writeUint32)(writer, 0);
|
|
3085
|
+
(0, psdWriter_1.writeUint32)(writer, 0);
|
|
3086
|
+
var lengthOffset = writer.offset;
|
|
3087
|
+
for (var _i = 0, _b = target.filterEffectsMasks; _i < _b.length; _i++) {
|
|
3088
|
+
var mask = _b[_i];
|
|
3089
|
+
(0, psdWriter_1.writePascalString)(writer, mask.id, 1);
|
|
3090
|
+
(0, psdWriter_1.writeInt32)(writer, 1);
|
|
3091
|
+
(0, psdWriter_1.writeUint32)(writer, 0);
|
|
3092
|
+
(0, psdWriter_1.writeUint32)(writer, 0);
|
|
3093
|
+
var length2Offset = writer.offset;
|
|
3094
|
+
(0, psdWriter_1.writeInt32)(writer, mask.top);
|
|
3095
|
+
(0, psdWriter_1.writeInt32)(writer, mask.left);
|
|
3096
|
+
(0, psdWriter_1.writeInt32)(writer, mask.bottom);
|
|
3097
|
+
(0, psdWriter_1.writeInt32)(writer, mask.right);
|
|
3098
|
+
(0, psdWriter_1.writeInt32)(writer, mask.depth);
|
|
3099
|
+
var maxChannels = Math.max(0, mask.channels.length - 2);
|
|
3100
|
+
(0, psdWriter_1.writeInt32)(writer, maxChannels);
|
|
3101
|
+
for (var i = 0; i < (maxChannels + 2); i++) {
|
|
3102
|
+
var channel = mask.channels[i];
|
|
3103
|
+
(0, psdWriter_1.writeInt32)(writer, channel ? 1 : 0);
|
|
3104
|
+
if (channel) {
|
|
3105
|
+
(0, psdWriter_1.writeUint32)(writer, 0);
|
|
3106
|
+
(0, psdWriter_1.writeUint32)(writer, channel.data.length + 2);
|
|
3107
|
+
(0, psdWriter_1.writeUint16)(writer, channel.compressionMode);
|
|
3108
|
+
(0, psdWriter_1.writeBytes)(writer, channel.data);
|
|
3109
|
+
}
|
|
3110
|
+
}
|
|
3111
|
+
writer.view.setUint32(length2Offset - 4, writer.offset - length2Offset, false);
|
|
3112
|
+
}
|
|
3113
|
+
var extra = (_a = target.filterEffectsMasks[target.filterEffectsMasks.length - 1]) === null || _a === void 0 ? void 0 : _a.extra;
|
|
3114
|
+
if (extra) {
|
|
3115
|
+
(0, psdWriter_1.writeUint8)(writer, 1);
|
|
3116
|
+
(0, psdWriter_1.writeUint16)(writer, extra.compressionMode);
|
|
3117
|
+
(0, psdWriter_1.writeBytes)(writer, extra.data);
|
|
3118
|
+
}
|
|
3119
|
+
writer.view.setUint32(lengthOffset - 4, writer.offset - lengthOffset, false);
|
|
3120
|
+
});
|
|
3121
|
+
addHandlerAlias('FXid', 'FEid');
|
|
2358
3122
|
addHandler('FMsk', hasKey('filterMask'), function (reader, target) {
|
|
2359
3123
|
target.filterMask = {
|
|
2360
3124
|
colorSpace: (0, psdReader_1.readColor)(reader),
|
|
@@ -2420,14 +3184,17 @@ addHandler('lfx2', function (target) { return target.effects !== undefined && !h
|
|
|
2420
3184
|
addHandler('cinf', hasKey('compositorUsed'), function (reader, target, left) {
|
|
2421
3185
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader);
|
|
2422
3186
|
// console.log(require('util').inspect(desc, false, 99, true));
|
|
3187
|
+
function enumValue(desc) {
|
|
3188
|
+
return desc.split('.')[1];
|
|
3189
|
+
}
|
|
2423
3190
|
target.compositorUsed = {
|
|
2424
3191
|
description: desc.description,
|
|
2425
3192
|
reason: desc.reason,
|
|
2426
|
-
engine: desc.Engn
|
|
2427
|
-
enableCompCore: desc.enableCompCore
|
|
2428
|
-
enableCompCoreGPU: desc.enableCompCoreGPU
|
|
2429
|
-
compCoreSupport: desc.compCoreSupport
|
|
2430
|
-
compCoreGPUSupport: desc.compCoreGPUSupport
|
|
3193
|
+
engine: enumValue(desc.Engn),
|
|
3194
|
+
enableCompCore: enumValue(desc.enableCompCore),
|
|
3195
|
+
enableCompCoreGPU: enumValue(desc.enableCompCoreGPU),
|
|
3196
|
+
compCoreSupport: enumValue(desc.compCoreSupport),
|
|
3197
|
+
compCoreGPUSupport: enumValue(desc.compCoreGPUSupport),
|
|
2431
3198
|
};
|
|
2432
3199
|
(0, psdReader_1.skipBytes)(reader, left());
|
|
2433
3200
|
}, function (writer, target) {
|
|
@@ -2482,87 +3249,6 @@ addHandler('tsly', hasKey('transparencyShapesLayer'), function (reader, target)
|
|
|
2482
3249
|
(0, psdWriter_1.writeUint8)(writer, target.transparencyShapesLayer ? 1 : 0);
|
|
2483
3250
|
(0, psdWriter_1.writeZeros)(writer, 3);
|
|
2484
3251
|
});
|
|
2485
|
-
/*addHandler(
|
|
2486
|
-
'FEid',
|
|
2487
|
-
hasKey('filterEffects'),
|
|
2488
|
-
(reader, _target) => {
|
|
2489
|
-
const version = readInt32(reader);
|
|
2490
|
-
if (version < 1 || version > 3) throw new Error(`Invalid filterEffects version ${version}`);
|
|
2491
|
-
|
|
2492
|
-
if (readUint32(reader)) throw new Error('filterEffects: 64 bit length is not supported');
|
|
2493
|
-
const length = readUint32(reader);
|
|
2494
|
-
const end = reader.offset + length;
|
|
2495
|
-
|
|
2496
|
-
while (reader.offset < end) {
|
|
2497
|
-
console.log('bytes to go', end - reader.offset, 'at', reader.offset.toString(16));
|
|
2498
|
-
//
|
|
2499
|
-
const id = readPascalString(reader, 1);
|
|
2500
|
-
const effectVersion = readInt32(reader);
|
|
2501
|
-
if (effectVersion !== 1) throw new Error(`Invalid filterEffect version ${effectVersion}`);
|
|
2502
|
-
if (readUint32(reader)) throw new Error('filterEffect: 64 bit length is not supported');
|
|
2503
|
-
const effectLength = readUint32(reader);
|
|
2504
|
-
const endOfEffect = reader.offset + effectLength;
|
|
2505
|
-
const top = readInt32(reader);
|
|
2506
|
-
const left = readInt32(reader);
|
|
2507
|
-
const bottom = readInt32(reader);
|
|
2508
|
-
const right = readInt32(reader);
|
|
2509
|
-
const depth = readInt32(reader);
|
|
2510
|
-
const maxChannels = readInt32(reader);
|
|
2511
|
-
const channels: any[] = [];
|
|
2512
|
-
|
|
2513
|
-
for (let i = 0; i < (maxChannels + 2); i++) {
|
|
2514
|
-
const exists = readInt32(reader);
|
|
2515
|
-
if (exists) {
|
|
2516
|
-
if (readUint32(reader)) throw new Error('filterEffect: 64 bit length is not supported');
|
|
2517
|
-
const channelLength = readUint32(reader);
|
|
2518
|
-
const compressionMode = readUint16(reader);
|
|
2519
|
-
const data = readBytes(reader, channelLength - 2);
|
|
2520
|
-
channels.push({ channelLength, compressionMode, data: data?.length + ' bytes' });
|
|
2521
|
-
// if (c < 3 || c == 25) e_ = _F.Cn(!0, rL, m, b.rect.F, b.rect.V, X, rp);
|
|
2522
|
-
// if (c == 0) _c.S = e_;
|
|
2523
|
-
// if (c == 1) _c.v = e_;
|
|
2524
|
-
// if (c == 2) _c.e = e_;
|
|
2525
|
-
// if (c == 25) _c.w = e_;
|
|
2526
|
-
} else {
|
|
2527
|
-
channels.push(undefined);
|
|
2528
|
-
}
|
|
2529
|
-
}
|
|
2530
|
-
|
|
2531
|
-
console.log('left at the end', endOfEffect - reader.offset);
|
|
2532
|
-
if (endOfEffect > reader.offset) {
|
|
2533
|
-
if (readUint8(reader)) {
|
|
2534
|
-
const compressionMode = readUint16(reader);
|
|
2535
|
-
const data = endOfEffect > reader.offset ? readBytes(reader, endOfEffect - reader.offset) : undefined;
|
|
2536
|
-
console.log('extra data', { compressionMode, data: data?.length + ' bytes' });
|
|
2537
|
-
} else {
|
|
2538
|
-
console.log('no extra');
|
|
2539
|
-
}
|
|
2540
|
-
}
|
|
2541
|
-
|
|
2542
|
-
console.log('effect', {
|
|
2543
|
-
id,
|
|
2544
|
-
effectVersion,
|
|
2545
|
-
effectLength,
|
|
2546
|
-
top,
|
|
2547
|
-
left,
|
|
2548
|
-
bottom,
|
|
2549
|
-
right,
|
|
2550
|
-
depth,
|
|
2551
|
-
maxChannels,
|
|
2552
|
-
channels,
|
|
2553
|
-
});
|
|
2554
|
-
|
|
2555
|
-
console.log('bytes left after effect', endOfEffect - reader.offset);
|
|
2556
|
-
// if (length % 4) skipBytes(reader, 4 - length % 4);
|
|
2557
|
-
}
|
|
2558
|
-
|
|
2559
|
-
console.log({ version, length });
|
|
2560
|
-
},
|
|
2561
|
-
(_writer, _target) => {
|
|
2562
|
-
},
|
|
2563
|
-
);
|
|
2564
|
-
|
|
2565
|
-
addHandlerAlias('FXid', 'FEid');*/
|
|
2566
3252
|
|
|
2567
3253
|
},{"./descriptor":4,"./effectsHelpers":5,"./engineData":6,"./helpers":7,"./psdReader":11,"./psdWriter":12,"./text":13,"base64-js":15}],3:[function(require,module,exports){
|
|
2568
3254
|
"use strict";
|
|
@@ -2627,7 +3313,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
2627
3313
|
return __assign.apply(this, arguments);
|
|
2628
3314
|
};
|
|
2629
3315
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2630
|
-
exports.
|
|
3316
|
+
exports.ESliceOrigin = exports.ESliceVertAlign = exports.ESliceHorzAlign = exports.ESliceType = exports.FrFl = exports.FStl = exports.ClrS = exports.gradientInterpolationMethodType = exports.stdTrackID = exports.animInterpStyleEnum = exports.GrdT = exports.IGSr = exports.BETE = exports.BESs = exports.bvlT = exports.BESl = exports.BlnM = exports.warpStyle = exports.Annt = exports.Ornt = exports.textGridding = exports.frac = exports.unitsValue = exports.unitsPercentF = exports.unitsPercent = exports.unitsAngle = exports.parseUnitsToNumber = exports.parseUnitsOrNumber = exports.parseUnits = exports.parsePercentOrAngle = exports.parsePercent = exports.parseAngle = exports.serializeColor = exports.parseColor = exports.serializeVectorContent = exports.parseVectorContent = exports.serializeTrackList = exports.parseTrackList = exports.parseEffects = exports.serializeEffects = exports.boundsToDescBounds = exports.descBoundsToBounds = exports.xyToHorzVrtc = exports.horzVrtcToXY = exports.writeVersionAndDescriptor = exports.readVersionAndDescriptor = exports.writeDescriptorStructure = exports.readDescriptorStructure = exports.readAsciiStringOrClassId = exports.setLogErrors = void 0;
|
|
3317
|
+
exports.prjM = exports.FlMd = exports.IntC = exports.IntE = exports.Drct = exports.WndM = exports.CntE = exports.FlCl = exports.ExtR = exports.ExtT = exports.DfsM = exports.blurType = exports.Lns = exports.MztT = exports.Chnl = exports.Dstr = exports.ZZTy = exports.Wvtp = exports.SphM = exports.RplS = exports.Cnvr = exports.UndA = exports.DspM = exports.SmBQ = exports.SmBM = exports.BlrQ = exports.BlrM = exports.strokeStyleLineAlignment = exports.strokeStyleLineJoinType = exports.strokeStyleLineCapType = exports.ESliceBGColorType = void 0;
|
|
2631
3318
|
var helpers_1 = require("./helpers");
|
|
2632
3319
|
var psdReader_1 = require("./psdReader");
|
|
2633
3320
|
var psdWriter_1 = require("./psdWriter");
|
|
@@ -2722,6 +3409,7 @@ var fieldToExtType = {
|
|
|
2722
3409
|
sheetStyle: nullType,
|
|
2723
3410
|
translation: nullType,
|
|
2724
3411
|
Skew: nullType,
|
|
3412
|
+
boundingBox: makeType('', 'boundingBox'),
|
|
2725
3413
|
'Lnk ': makeType('', 'ExternalFileLink'),
|
|
2726
3414
|
frameReader: makeType('', 'FrameReader'),
|
|
2727
3415
|
effectParams: makeType('', 'motionTrackEffectParams'),
|
|
@@ -2729,11 +3417,15 @@ var fieldToExtType = {
|
|
|
2729
3417
|
Anch: makeType('', 'Pnt '),
|
|
2730
3418
|
'Fwd ': makeType('', 'Pnt '),
|
|
2731
3419
|
'Bwd ': makeType('', 'Pnt '),
|
|
3420
|
+
FlrC: makeType('', 'Pnt '),
|
|
2732
3421
|
meshBoundaryPath: makeType('', 'pathClass'),
|
|
2733
3422
|
filterFX: makeType('', 'filterFXStyle'),
|
|
2734
3423
|
Fltr: makeType('', 'rigidTransform'),
|
|
2735
3424
|
FrgC: makeType('', 'RGBC'),
|
|
2736
3425
|
BckC: makeType('', 'RGBC'),
|
|
3426
|
+
sdwM: makeType('Parameters', 'adaptCorrectTones'),
|
|
3427
|
+
hglM: makeType('Parameters', 'adaptCorrectTones'),
|
|
3428
|
+
customShape: makeType('', 'customShape'),
|
|
2737
3429
|
};
|
|
2738
3430
|
var fieldToArrayExtType = {
|
|
2739
3431
|
'Crv ': makeType('', 'CrPt'),
|
|
@@ -2762,15 +3454,20 @@ var fieldToArrayExtType = {
|
|
|
2762
3454
|
pathComponents: makeType('', 'PaCm'),
|
|
2763
3455
|
filterFXList: makeType('', 'filterFX'),
|
|
2764
3456
|
puppetShapeList: makeType('', 'puppetShape'),
|
|
3457
|
+
channelDenoise: makeType('', 'channelDenoiseParams'),
|
|
3458
|
+
ShrP: makeType('', 'Pnt '),
|
|
2765
3459
|
};
|
|
2766
3460
|
var typeToField = {
|
|
2767
3461
|
'TEXT': [
|
|
2768
3462
|
'Txt ', 'printerName', 'Nm ', 'Idnt', 'blackAndWhitePresetFileName', 'LUT3DFileName',
|
|
2769
3463
|
'presetFileName', 'curvesPresetFileName', 'mixerPresetFileName', 'placed', 'description', 'reason',
|
|
2770
3464
|
'artboardPresetName', 'json', 'clipID', 'relPath', 'fullPath', 'mediaDescriptor', 'Msge',
|
|
2771
|
-
'altTag', 'url', 'cellText',
|
|
3465
|
+
'altTag', 'url', 'cellText', 'preset', 'KnNm', 'FPth',
|
|
3466
|
+
],
|
|
3467
|
+
'tdta': [
|
|
3468
|
+
'EngineData', 'LUT3DFileData', 'indexArray', 'originalVertexArray', 'deformedVertexArray',
|
|
3469
|
+
'LqMe',
|
|
2772
3470
|
],
|
|
2773
|
-
'tdta': ['EngineData', 'LUT3DFileData', 'indexArray', 'originalVertexArray', 'deformedVertexArray'],
|
|
2774
3471
|
'long': [
|
|
2775
3472
|
'TextIndex', 'RndS', 'Mdpn', 'Smth', 'Lctn', 'strokeStyleVersion', 'LaID', 'Vrsn', 'Cnt ',
|
|
2776
3473
|
'Brgh', 'Cntr', 'means', 'vibrance', 'Strt', 'bwPresetKind', 'presetKind', 'comp', 'compID', 'originalCompID',
|
|
@@ -2781,16 +3478,19 @@ var typeToField = {
|
|
|
2781
3478
|
'numBefore', 'numAfter', 'Spcn', 'minOpacity', 'maxOpacity', 'BlnM', 'sheetID', 'gblA', 'globalAltitude',
|
|
2782
3479
|
'descVersion', 'frameReaderType', 'LyrI', 'zoomOrigin', 'fontSize', 'Rds ', 'sliceID',
|
|
2783
3480
|
'topOutset', 'leftOutset', 'bottomOutset', 'rightOutset', 'filterID', 'meshQuality',
|
|
2784
|
-
'meshExpansion', 'meshRigidity', 'VrsM', 'VrsN',
|
|
3481
|
+
'meshExpansion', 'meshRigidity', 'VrsM', 'VrsN', 'NmbG', 'WLMn', 'WLMx', 'AmMn', 'AmMx', 'SclH', 'SclV',
|
|
3482
|
+
'Lvl ', 'TlNm', 'TlOf', 'FlRs', 'Thsh', 'ShrS', 'ShrE', 'FlRs', 'Vrnc', 'Strg', 'ExtS', 'ExtD',
|
|
3483
|
+
'HrzS', 'VrtS', 'NmbR', 'EdgF', 'Ang1', 'Ang2', 'Ang3', 'Ang4',
|
|
2785
3484
|
],
|
|
2786
3485
|
'enum': [
|
|
2787
|
-
'textGridding', 'Ornt', 'warpStyle', 'warpRotate', 'Inte', 'Bltn', 'ClrS',
|
|
2788
|
-
'
|
|
3486
|
+
'textGridding', 'Ornt', 'warpStyle', 'warpRotate', 'Inte', 'Bltn', 'ClrS', 'BlrQ',
|
|
3487
|
+
'bvlT', 'bvlS', 'bvlD', 'Md ', 'glwS', 'GrdF', 'GlwT', 'RplS', 'BlrM', 'SmBM',
|
|
2789
3488
|
'strokeStyleLineCapType', 'strokeStyleLineJoinType', 'strokeStyleLineAlignment',
|
|
2790
3489
|
'strokeStyleBlendMode', 'PntT', 'Styl', 'lookupType', 'LUTFormat', 'dataOrder',
|
|
2791
3490
|
'tableOrder', 'enableCompCore', 'enableCompCoreGPU', 'compCoreSupport', 'compCoreGPUSupport', 'Engn',
|
|
2792
3491
|
'enableCompCoreThreads', 'gs99', 'FrDs', 'trackID', 'animInterpStyle', 'horzAlign',
|
|
2793
|
-
'vertAlign', 'bgColorType', 'shapeOperation',
|
|
3492
|
+
'vertAlign', 'bgColorType', 'shapeOperation', 'UndA', 'Wvtp', 'Drct', 'WndM', 'Edg ', 'FlCl', 'IntE',
|
|
3493
|
+
'IntC', 'Cnvr', 'Fl ', 'Dstr', 'MztT', 'Lns ', 'ExtT', 'DspM', 'ExtR', 'ZZTy', 'SphM', 'SmBQ',
|
|
2794
3494
|
],
|
|
2795
3495
|
'bool': [
|
|
2796
3496
|
'PstS', 'printSixteenBit', 'masterFXSwitch', 'enab', 'uglg', 'antialiasGloss',
|
|
@@ -2802,7 +3502,8 @@ var typeToField = {
|
|
|
2802
3502
|
'present', 'showInDialog', 'overprint', 'sheetDisclosed', 'lightsDisclosed', 'meshesDisclosed',
|
|
2803
3503
|
'materialsDisclosed', 'hasMotion', 'muted', 'Effc', 'selected', 'autoScope', 'fillCanvas',
|
|
2804
3504
|
'cellTextIsHTML', 'Smoo', 'Clsp', 'validAtPosition', 'rigidType', 'hasoptions', 'filterMaskEnable',
|
|
2805
|
-
'filterMaskLinked', 'filterMaskExtendWithWhite',
|
|
3505
|
+
'filterMaskLinked', 'filterMaskExtendWithWhite', 'removeJPEGArtifact', 'Mnch', 'ExtF', 'ExtM',
|
|
3506
|
+
'moreAccurate', 'GpuY', 'LIWy',
|
|
2806
3507
|
],
|
|
2807
3508
|
'doub': [
|
|
2808
3509
|
'warpValue', 'warpPerspective', 'warpPerspectiveOther', 'Intr', 'Wdth', 'Hght',
|
|
@@ -2812,10 +3513,10 @@ var typeToField = {
|
|
|
2812
3513
|
'PuX0', 'PuX1', 'PuX2', 'PuX3', 'PuY0', 'PuY1', 'PuY2', 'PuY3'
|
|
2813
3514
|
],
|
|
2814
3515
|
'UntF': [
|
|
2815
|
-
'
|
|
3516
|
+
'sdwO', 'hglO', 'lagl', 'Lald', 'srgR', 'blur', 'Sftn', 'Opct', 'Dstn', 'Angl',
|
|
2816
3517
|
'Ckmt', 'Nose', 'Inpr', 'ShdN', 'strokeStyleLineWidth', 'strokeStyleLineDashOffset',
|
|
2817
3518
|
'strokeStyleOpacity', 'H ', 'Top ', 'Left', 'Btom', 'Rght', 'Rslt',
|
|
2818
|
-
'topRight', 'topLeft', 'bottomLeft', 'bottomRight',
|
|
3519
|
+
'topRight', 'topLeft', 'bottomLeft', 'bottomRight', 'ClNs', 'Shrp',
|
|
2819
3520
|
],
|
|
2820
3521
|
'VlLs': [
|
|
2821
3522
|
'Crv ', 'Clrs', 'Mnm ', 'Mxm ', 'Trns', 'pathList', 'strokeStyleLineDashSet', 'FrLs', 'slices',
|
|
@@ -2823,10 +3524,12 @@ var typeToField = {
|
|
|
2823
3524
|
'solidFillMulti', 'frameFXMulti', 'innerShadowMulti', 'dropShadowMulti', 'FrIn', 'FSts', 'FsFr',
|
|
2824
3525
|
'sheetTimelineOptions', 'audioClipList', 'trackList', 'globalTrackList', 'keyList', 'audioClipList',
|
|
2825
3526
|
'warpValues', 'selectedPin', 'Pts ', 'SbpL', 'pathComponents', 'pinOffsets', 'posFinalPins',
|
|
2826
|
-
'pinVertexIndices', 'PinP', 'PnRt', 'PnOv', 'PnDp', 'filterFXList', 'puppetShapeList',
|
|
3527
|
+
'pinVertexIndices', 'PinP', 'PnRt', 'PnOv', 'PnDp', 'filterFXList', 'puppetShapeList', 'ShrP',
|
|
3528
|
+
'channelDenoise', 'Mtrx',
|
|
2827
3529
|
],
|
|
2828
3530
|
'ObAr': ['meshPoints', 'quiltSliceX', 'quiltSliceY'],
|
|
2829
|
-
'obj ': ['null'],
|
|
3531
|
+
'obj ': ['null', 'Chnl'],
|
|
3532
|
+
'Pth ': ['DspF'],
|
|
2830
3533
|
};
|
|
2831
3534
|
var channels = [
|
|
2832
3535
|
'Rd ', 'Grn ', 'Bl ', 'Yllw', 'Ylw ', 'Cyn ', 'Mgnt', 'Blck', 'Gry ', 'Lmnc', 'A ', 'B ',
|
|
@@ -2865,6 +3568,9 @@ var fieldToArrayType = {
|
|
|
2865
3568
|
PnDp: 'doub',
|
|
2866
3569
|
filterFXList: 'Objc',
|
|
2867
3570
|
puppetShapeList: 'Objc',
|
|
3571
|
+
ShrP: 'Objc',
|
|
3572
|
+
channelDenoise: 'Objc',
|
|
3573
|
+
Mtrx: 'long',
|
|
2868
3574
|
};
|
|
2869
3575
|
var fieldToType = {};
|
|
2870
3576
|
for (var _i = 0, _a = Object.keys(typeToField); _i < _a.length; _i++) {
|
|
@@ -2940,11 +3646,12 @@ function writeAsciiStringOrClassId(writer, value) {
|
|
|
2940
3646
|
}
|
|
2941
3647
|
}
|
|
2942
3648
|
function readDescriptorStructure(reader) {
|
|
2943
|
-
|
|
2944
|
-
// object.__struct =
|
|
3649
|
+
// const struct =
|
|
2945
3650
|
readClassStructure(reader);
|
|
3651
|
+
// const object: any = { _name: struct.name, _classID: struct.classID };
|
|
3652
|
+
var object = {};
|
|
3653
|
+
// console.log('>> ', struct);
|
|
2946
3654
|
var itemsCount = (0, psdReader_1.readUint32)(reader);
|
|
2947
|
-
// console.log('//', object.__struct);
|
|
2948
3655
|
for (var i = 0; i < itemsCount; i++) {
|
|
2949
3656
|
var key = readAsciiStringOrClassId(reader);
|
|
2950
3657
|
var type = (0, psdReader_1.readSignature)(reader);
|
|
@@ -2963,21 +3670,63 @@ function writeDescriptorStructure(writer, name, classId, value, root) {
|
|
|
2963
3670
|
(0, psdWriter_1.writeUnicodeStringWithPadding)(writer, name);
|
|
2964
3671
|
writeAsciiStringOrClassId(writer, classId);
|
|
2965
3672
|
var keys = Object.keys(value);
|
|
2966
|
-
|
|
3673
|
+
var keyCount = keys.length;
|
|
3674
|
+
if ('_name' in value)
|
|
3675
|
+
keyCount--;
|
|
3676
|
+
if ('_classID' in value)
|
|
3677
|
+
keyCount--;
|
|
3678
|
+
(0, psdWriter_1.writeUint32)(writer, keyCount);
|
|
2967
3679
|
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
2968
3680
|
var key = keys_1[_i];
|
|
3681
|
+
if (key === '_name' || key === '_classID')
|
|
3682
|
+
continue;
|
|
2969
3683
|
var type = getTypeByKey(key, value[key], root, value);
|
|
2970
3684
|
var extType = fieldToExtType[key];
|
|
2971
|
-
if (key === '
|
|
3685
|
+
if (key === 'bounds' && root === 'text') {
|
|
3686
|
+
extType = makeType('', 'bounds');
|
|
3687
|
+
}
|
|
3688
|
+
else if (key === 'origin') {
|
|
2972
3689
|
type = root === 'slices' ? 'enum' : 'Objc';
|
|
2973
3690
|
}
|
|
3691
|
+
else if ((key === 'Cyn ' || key === 'Mgnt' || key === 'Ylw ' || key === 'Blck') && value._classID === 'CMYC') {
|
|
3692
|
+
type = 'doub';
|
|
3693
|
+
}
|
|
3694
|
+
else if (/^PN[a-z][a-z]$/.test(key)) {
|
|
3695
|
+
type = 'TEXT';
|
|
3696
|
+
}
|
|
3697
|
+
else if (/^PT[a-z][a-z]$/.test(key)) {
|
|
3698
|
+
type = 'long';
|
|
3699
|
+
}
|
|
3700
|
+
else if (/^PF[a-z][a-z]$/.test(key)) {
|
|
3701
|
+
type = 'doub';
|
|
3702
|
+
}
|
|
3703
|
+
else if (key === 'ClSz' || key === 'Rds ' || key === 'Amnt') {
|
|
3704
|
+
type = typeof value[key] === 'number' ? 'long' : 'UntF';
|
|
3705
|
+
}
|
|
3706
|
+
else if ((key === 'sdwM' || key === 'hglM') && typeof value[key] === 'string') {
|
|
3707
|
+
type = 'enum';
|
|
3708
|
+
}
|
|
3709
|
+
else if (key === 'blur' && typeof value[key] === 'string') {
|
|
3710
|
+
type = 'enum';
|
|
3711
|
+
}
|
|
3712
|
+
else if (key === 'Angl' && typeof value[key] === 'number') {
|
|
3713
|
+
type = 'doub'; // ???
|
|
3714
|
+
}
|
|
2974
3715
|
else if (key === 'bounds' && root === 'slices') {
|
|
2975
3716
|
type = 'Objc';
|
|
2976
3717
|
extType = makeType('', 'Rct1');
|
|
2977
3718
|
}
|
|
2978
|
-
else if (key === 'Scl '
|
|
2979
|
-
|
|
2980
|
-
|
|
3719
|
+
else if (key === 'Scl ') {
|
|
3720
|
+
if (typeof value[key] === 'object' && 'Hrzn' in value[key]) {
|
|
3721
|
+
type = 'Objc';
|
|
3722
|
+
extType = nullType;
|
|
3723
|
+
}
|
|
3724
|
+
else if (typeof value[key] === 'number') {
|
|
3725
|
+
type = 'long';
|
|
3726
|
+
}
|
|
3727
|
+
else {
|
|
3728
|
+
type = 'UntF';
|
|
3729
|
+
}
|
|
2981
3730
|
}
|
|
2982
3731
|
else if (key === 'audioClipGroupList' && keys.length === 1) {
|
|
2983
3732
|
type = 'VlLs';
|
|
@@ -2985,7 +3734,13 @@ function writeDescriptorStructure(writer, name, classId, value, root) {
|
|
|
2985
3734
|
else if ((key === 'Strt' || key === 'Brgh') && 'H ' in value) {
|
|
2986
3735
|
type = 'doub';
|
|
2987
3736
|
}
|
|
2988
|
-
else if (key === '
|
|
3737
|
+
else if (key === 'Wdth' && typeof value[key] === 'object') {
|
|
3738
|
+
type = 'UntF';
|
|
3739
|
+
}
|
|
3740
|
+
else if (key === 'Ofst' && typeof value[key] === 'number') {
|
|
3741
|
+
type = 'long';
|
|
3742
|
+
}
|
|
3743
|
+
else if (key === 'Strt' && typeof value[key] === 'object') {
|
|
2989
3744
|
type = 'Objc';
|
|
2990
3745
|
extType = nullType;
|
|
2991
3746
|
}
|
|
@@ -3105,11 +3860,11 @@ function readOSType(reader, type) {
|
|
|
3105
3860
|
return items;
|
|
3106
3861
|
}
|
|
3107
3862
|
case 'Pth ': { // File path
|
|
3108
|
-
/*const length =*/ (0, psdReader_1.readInt32)(reader);
|
|
3863
|
+
/*const length =*/ (0, psdReader_1.readInt32)(reader); // total size of all fields below
|
|
3109
3864
|
var sig = (0, psdReader_1.readSignature)(reader);
|
|
3110
|
-
/*const pathSize =*/ (0, psdReader_1.readInt32LE)(reader);
|
|
3865
|
+
/*const pathSize =*/ (0, psdReader_1.readInt32LE)(reader); // the same as length
|
|
3111
3866
|
var charsCount = (0, psdReader_1.readInt32LE)(reader);
|
|
3112
|
-
var path = (0, psdReader_1.
|
|
3867
|
+
var path = (0, psdReader_1.readUnicodeStringWithLengthLE)(reader, charsCount);
|
|
3113
3868
|
return { sig: sig, path: path };
|
|
3114
3869
|
}
|
|
3115
3870
|
default:
|
|
@@ -3127,12 +3882,19 @@ function writeOSType(writer, type, value, key, extType, root) {
|
|
|
3127
3882
|
writeReferenceStructure(writer, key, value);
|
|
3128
3883
|
break;
|
|
3129
3884
|
case 'Objc': // Descriptor
|
|
3130
|
-
case 'GlbO': // GlobalObject same as Descriptor
|
|
3885
|
+
case 'GlbO': { // GlobalObject same as Descriptor
|
|
3886
|
+
if (typeof value !== 'object')
|
|
3887
|
+
throw new Error("Invalid struct value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
3131
3888
|
if (!extType)
|
|
3132
3889
|
throw new Error("Missing ext type for: '".concat(key, "' (").concat(JSON.stringify(value), ")"));
|
|
3133
|
-
|
|
3890
|
+
var name_1 = value._name || extType.name;
|
|
3891
|
+
var classID = value._classID || extType.classID;
|
|
3892
|
+
writeDescriptorStructure(writer, name_1, classID, value, root);
|
|
3134
3893
|
break;
|
|
3894
|
+
}
|
|
3135
3895
|
case 'VlLs': // List
|
|
3896
|
+
if (!Array.isArray(value))
|
|
3897
|
+
throw new Error("Invalid list value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
3136
3898
|
(0, psdWriter_1.writeInt32)(writer, value.length);
|
|
3137
3899
|
for (var i = 0; i < value.length; i++) {
|
|
3138
3900
|
var type_3 = fieldToArrayType[key];
|
|
@@ -3143,6 +3905,8 @@ function writeOSType(writer, type, value, key, extType, root) {
|
|
|
3143
3905
|
}
|
|
3144
3906
|
break;
|
|
3145
3907
|
case 'doub': // Double
|
|
3908
|
+
if (typeof value !== 'number')
|
|
3909
|
+
throw new Error("Invalid number value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
3146
3910
|
(0, psdWriter_1.writeFloat64)(writer, value);
|
|
3147
3911
|
break;
|
|
3148
3912
|
case 'UntF': // Unit double
|
|
@@ -3161,17 +3925,23 @@ function writeOSType(writer, type, value, key, extType, root) {
|
|
|
3161
3925
|
(0, psdWriter_1.writeUnicodeStringWithPadding)(writer, value);
|
|
3162
3926
|
break;
|
|
3163
3927
|
case 'enum': { // Enumerated
|
|
3928
|
+
if (typeof value !== 'string')
|
|
3929
|
+
throw new Error("Invalid enum value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
3164
3930
|
var _a = value.split('.'), _type = _a[0], val = _a[1];
|
|
3165
3931
|
writeAsciiStringOrClassId(writer, _type);
|
|
3166
3932
|
writeAsciiStringOrClassId(writer, val);
|
|
3167
3933
|
break;
|
|
3168
3934
|
}
|
|
3169
3935
|
case 'long': // Integer
|
|
3936
|
+
if (typeof value !== 'number')
|
|
3937
|
+
throw new Error("Invalid integer value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
3170
3938
|
(0, psdWriter_1.writeInt32)(writer, value);
|
|
3171
3939
|
break;
|
|
3172
3940
|
// case 'comp': // Large Integer
|
|
3173
3941
|
// writeLargeInteger(reader);
|
|
3174
3942
|
case 'bool': // Boolean
|
|
3943
|
+
if (typeof value !== 'boolean')
|
|
3944
|
+
throw new Error("Invalid boolean value: ".concat(JSON.stringify(value), ", key: ").concat(key));
|
|
3175
3945
|
(0, psdWriter_1.writeUint8)(writer, value ? 1 : 0);
|
|
3176
3946
|
break;
|
|
3177
3947
|
// case 'type': // Class
|
|
@@ -3202,8 +3972,15 @@ function writeOSType(writer, type, value, key, extType, root) {
|
|
|
3202
3972
|
}
|
|
3203
3973
|
break;
|
|
3204
3974
|
}
|
|
3205
|
-
|
|
3206
|
-
|
|
3975
|
+
case 'Pth ': { // File path
|
|
3976
|
+
var length_5 = 4 + 4 + 4 + value.path.length * 2;
|
|
3977
|
+
(0, psdWriter_1.writeInt32)(writer, length_5);
|
|
3978
|
+
(0, psdWriter_1.writeSignature)(writer, value.sig);
|
|
3979
|
+
(0, psdWriter_1.writeInt32LE)(writer, length_5);
|
|
3980
|
+
(0, psdWriter_1.writeInt32LE)(writer, value.path.length);
|
|
3981
|
+
(0, psdWriter_1.writeUnicodeStringWithoutLengthLE)(writer, value.path);
|
|
3982
|
+
break;
|
|
3983
|
+
}
|
|
3207
3984
|
default:
|
|
3208
3985
|
throw new Error("Not implemented descriptor OSType: ".concat(type));
|
|
3209
3986
|
}
|
|
@@ -3294,7 +4071,6 @@ function writeReferenceStructure(writer, _key, items) {
|
|
|
3294
4071
|
function readClassStructure(reader) {
|
|
3295
4072
|
var name = (0, psdReader_1.readUnicodeString)(reader);
|
|
3296
4073
|
var classID = readAsciiStringOrClassId(reader);
|
|
3297
|
-
// console.log({ name, classID });
|
|
3298
4074
|
return { name: name, classID: classID };
|
|
3299
4075
|
}
|
|
3300
4076
|
function writeClassStructure(writer, name, classID) {
|
|
@@ -3324,6 +4100,26 @@ function xyToHorzVrtc(xy) {
|
|
|
3324
4100
|
return { Hrzn: xy.x, Vrtc: xy.y };
|
|
3325
4101
|
}
|
|
3326
4102
|
exports.xyToHorzVrtc = xyToHorzVrtc;
|
|
4103
|
+
function descBoundsToBounds(desc) {
|
|
4104
|
+
return {
|
|
4105
|
+
top: parseUnits(desc['Top ']),
|
|
4106
|
+
left: parseUnits(desc.Left),
|
|
4107
|
+
right: parseUnits(desc.Rght),
|
|
4108
|
+
bottom: parseUnits(desc.Btom),
|
|
4109
|
+
};
|
|
4110
|
+
}
|
|
4111
|
+
exports.descBoundsToBounds = descBoundsToBounds;
|
|
4112
|
+
function boundsToDescBounds(bounds) {
|
|
4113
|
+
var _a;
|
|
4114
|
+
return _a = {
|
|
4115
|
+
Left: unitsValue(bounds.left, 'bounds.left')
|
|
4116
|
+
},
|
|
4117
|
+
_a['Top '] = unitsValue(bounds.top, 'bounds.top'),
|
|
4118
|
+
_a.Rght = unitsValue(bounds.right, 'bounds.right'),
|
|
4119
|
+
_a.Btom = unitsValue(bounds.bottom, 'bounds.bottom'),
|
|
4120
|
+
_a;
|
|
4121
|
+
}
|
|
4122
|
+
exports.boundsToDescBounds = boundsToDescBounds;
|
|
3327
4123
|
function parseFxObject(fx) {
|
|
3328
4124
|
var stroke = {
|
|
3329
4125
|
enabled: !!fx.enab,
|
|
@@ -3474,7 +4270,8 @@ function parseKeyList(keyList, logMissingFeatures) {
|
|
|
3474
4270
|
var keys = [];
|
|
3475
4271
|
for (var j = 0; j < keyList.length; j++) {
|
|
3476
4272
|
var key = keyList[j];
|
|
3477
|
-
var
|
|
4273
|
+
var _a = key.time, denominator = _a.denominator, numerator = _a.numerator, selected = key.selected, animKey = key.animKey;
|
|
4274
|
+
var time = { numerator: numerator, denominator: denominator };
|
|
3478
4275
|
var interpolation = exports.animInterpStyleEnum.decode(key.animInterpStyle);
|
|
3479
4276
|
switch (animKey.Type) {
|
|
3480
4277
|
case 'keyType.Opct':
|
|
@@ -3723,6 +4520,9 @@ function parseEffectObject(obj, reportErrors) {
|
|
|
3723
4520
|
case 'antialiasGloss':
|
|
3724
4521
|
result[key] = val;
|
|
3725
4522
|
break;
|
|
4523
|
+
case '_name':
|
|
4524
|
+
case '_classID':
|
|
4525
|
+
break;
|
|
3726
4526
|
default:
|
|
3727
4527
|
reportErrors && console.log("Invalid effect key: '".concat(key, "', value:"), val);
|
|
3728
4528
|
}
|
|
@@ -4075,25 +4875,25 @@ function parseColor(color) {
|
|
|
4075
4875
|
exports.parseColor = parseColor;
|
|
4076
4876
|
function serializeColor(color) {
|
|
4077
4877
|
if (!color) {
|
|
4078
|
-
return { 'Rd ': 0, 'Grn ': 0, 'Bl ': 0 };
|
|
4878
|
+
return { _name: '', _classID: 'RGBC', 'Rd ': 0, 'Grn ': 0, 'Bl ': 0 };
|
|
4079
4879
|
}
|
|
4080
4880
|
else if ('r' in color) {
|
|
4081
|
-
return { 'Rd ': color.r || 0, 'Grn ': color.g || 0, 'Bl ': color.b || 0 };
|
|
4881
|
+
return { _name: '', _classID: 'RGBC', 'Rd ': color.r || 0, 'Grn ': color.g || 0, 'Bl ': color.b || 0 };
|
|
4082
4882
|
}
|
|
4083
4883
|
else if ('fr' in color) {
|
|
4084
|
-
return { redFloat: color.fr, greenFloat: color.fg, blueFloat: color.fb };
|
|
4884
|
+
return { _name: '', _classID: 'XXXX', redFloat: color.fr, greenFloat: color.fg, blueFloat: color.fb };
|
|
4085
4885
|
}
|
|
4086
4886
|
else if ('h' in color) {
|
|
4087
|
-
return { 'H ': unitsAngle(color.h * 360), Strt: color.s || 0, Brgh: color.b || 0 };
|
|
4887
|
+
return { _name: '', _classID: 'HSBC', 'H ': unitsAngle(color.h * 360), Strt: color.s || 0, Brgh: color.b || 0 };
|
|
4088
4888
|
}
|
|
4089
4889
|
else if ('c' in color) {
|
|
4090
|
-
return { 'Cyn ': color.c || 0, Mgnt: color.m || 0, 'Ylw ': color.y || 0, Blck: color.k || 0 };
|
|
4890
|
+
return { _name: '', _classID: 'CMYC', 'Cyn ': color.c || 0, Mgnt: color.m || 0, 'Ylw ': color.y || 0, Blck: color.k || 0 };
|
|
4091
4891
|
}
|
|
4092
4892
|
else if ('l' in color) {
|
|
4093
|
-
return { Lmnc: color.l || 0, 'A ': color.a || 0, 'B ': color.b || 0 };
|
|
4893
|
+
return { _name: '', _classID: 'LABC', Lmnc: color.l || 0, 'A ': color.a || 0, 'B ': color.b || 0 };
|
|
4094
4894
|
}
|
|
4095
4895
|
else if ('k' in color) {
|
|
4096
|
-
return { 'Gry ': color.k };
|
|
4896
|
+
return { _name: '', _classID: 'GRYC', 'Gry ': color.k };
|
|
4097
4897
|
}
|
|
4098
4898
|
else {
|
|
4099
4899
|
throw new Error('Invalid color value');
|
|
@@ -4157,6 +4957,10 @@ function unitsPercent(value) {
|
|
|
4157
4957
|
return { units: 'Percent', value: Math.round((value || 0) * 100) };
|
|
4158
4958
|
}
|
|
4159
4959
|
exports.unitsPercent = unitsPercent;
|
|
4960
|
+
function unitsPercentF(value) {
|
|
4961
|
+
return { units: 'Percent', value: (value || 0) * 100 };
|
|
4962
|
+
}
|
|
4963
|
+
exports.unitsPercentF = unitsPercentF;
|
|
4160
4964
|
function unitsValue(x, key) {
|
|
4161
4965
|
if (x == null)
|
|
4162
4966
|
return { units: 'Pixels', value: 0 };
|
|
@@ -4172,6 +4976,11 @@ function unitsValue(x, key) {
|
|
|
4172
4976
|
return { units: units, value: value };
|
|
4173
4977
|
}
|
|
4174
4978
|
exports.unitsValue = unitsValue;
|
|
4979
|
+
function frac(_a) {
|
|
4980
|
+
var numerator = _a.numerator, denominator = _a.denominator;
|
|
4981
|
+
return { numerator: numerator, denominator: denominator };
|
|
4982
|
+
}
|
|
4983
|
+
exports.frac = frac;
|
|
4175
4984
|
exports.textGridding = (0, helpers_1.createEnum)('textGridding', 'none', {
|
|
4176
4985
|
none: 'None',
|
|
4177
4986
|
round: 'Rnd ',
|
|
@@ -4293,6 +5102,7 @@ exports.ClrS = (0, helpers_1.createEnum)('ClrS', 'rgb', {
|
|
|
4293
5102
|
rgb: 'RGBC',
|
|
4294
5103
|
hsb: 'HSBl',
|
|
4295
5104
|
lab: 'LbCl',
|
|
5105
|
+
hsl: 'HSLC',
|
|
4296
5106
|
});
|
|
4297
5107
|
exports.FStl = (0, helpers_1.createEnum)('FStl', 'outside', {
|
|
4298
5108
|
outside: 'OutF',
|
|
@@ -4339,6 +5149,142 @@ exports.strokeStyleLineAlignment = (0, helpers_1.createEnum)('strokeStyleLineAli
|
|
|
4339
5149
|
center: 'strokeStyleAlignCenter',
|
|
4340
5150
|
outside: 'strokeStyleAlignOutside',
|
|
4341
5151
|
});
|
|
5152
|
+
exports.BlrM = (0, helpers_1.createEnum)('BlrM', 'ispinmage', {
|
|
5153
|
+
spin: 'Spn ',
|
|
5154
|
+
zoom: 'Zm ',
|
|
5155
|
+
});
|
|
5156
|
+
exports.BlrQ = (0, helpers_1.createEnum)('BlrQ', 'good', {
|
|
5157
|
+
draft: 'Drft',
|
|
5158
|
+
good: 'Gd ',
|
|
5159
|
+
best: 'Bst ',
|
|
5160
|
+
});
|
|
5161
|
+
exports.SmBM = (0, helpers_1.createEnum)('SmBM', 'normal', {
|
|
5162
|
+
normal: 'SBMN',
|
|
5163
|
+
'edge only': 'SBME',
|
|
5164
|
+
'overlay edge': 'SBMO',
|
|
5165
|
+
});
|
|
5166
|
+
exports.SmBQ = (0, helpers_1.createEnum)('SmBQ', 'medium', {
|
|
5167
|
+
low: 'SBQL',
|
|
5168
|
+
medium: 'SBQM',
|
|
5169
|
+
high: 'SBQH',
|
|
5170
|
+
});
|
|
5171
|
+
exports.DspM = (0, helpers_1.createEnum)('DspM', 'stretch to fit', {
|
|
5172
|
+
'stretch to fit': 'StrF',
|
|
5173
|
+
'tile': 'Tile',
|
|
5174
|
+
});
|
|
5175
|
+
exports.UndA = (0, helpers_1.createEnum)('UndA', 'repeat edge pixels', {
|
|
5176
|
+
'wrap around': 'WrpA',
|
|
5177
|
+
'repeat edge pixels': 'RptE',
|
|
5178
|
+
});
|
|
5179
|
+
exports.Cnvr = (0, helpers_1.createEnum)('Cnvr', 'rectangular to polar', {
|
|
5180
|
+
'rectangular to polar': 'RctP',
|
|
5181
|
+
'polar to rectangular': 'PlrR',
|
|
5182
|
+
});
|
|
5183
|
+
exports.RplS = (0, helpers_1.createEnum)('RplS', 'medium', {
|
|
5184
|
+
small: 'Sml ',
|
|
5185
|
+
medium: 'Mdm ',
|
|
5186
|
+
large: 'Lrg ',
|
|
5187
|
+
});
|
|
5188
|
+
exports.SphM = (0, helpers_1.createEnum)('SphM', 'normal', {
|
|
5189
|
+
'normal': 'Nrml',
|
|
5190
|
+
'horizontal only': 'HrzO',
|
|
5191
|
+
'vertical only': 'VrtO',
|
|
5192
|
+
});
|
|
5193
|
+
exports.Wvtp = (0, helpers_1.createEnum)('Wvtp', 'sine', {
|
|
5194
|
+
sine: 'WvSn',
|
|
5195
|
+
triangle: 'WvTr',
|
|
5196
|
+
square: 'WvSq',
|
|
5197
|
+
});
|
|
5198
|
+
exports.ZZTy = (0, helpers_1.createEnum)('ZZTy', 'pond ripples', {
|
|
5199
|
+
'around center': 'ArnC',
|
|
5200
|
+
'out from center': 'OtFr',
|
|
5201
|
+
'pond ripples': 'PndR',
|
|
5202
|
+
});
|
|
5203
|
+
exports.Dstr = (0, helpers_1.createEnum)('Dstr', 'uniform', {
|
|
5204
|
+
uniform: 'Unfr',
|
|
5205
|
+
gaussian: 'Gsn ',
|
|
5206
|
+
});
|
|
5207
|
+
exports.Chnl = (0, helpers_1.createEnum)('Chnl', 'composite', {
|
|
5208
|
+
red: 'Rd ',
|
|
5209
|
+
green: 'Grn ',
|
|
5210
|
+
blue: 'Bl ',
|
|
5211
|
+
composite: 'Cmps',
|
|
5212
|
+
});
|
|
5213
|
+
exports.MztT = (0, helpers_1.createEnum)('MztT', 'fine dots', {
|
|
5214
|
+
'fine dots': 'FnDt',
|
|
5215
|
+
'medium dots': 'MdmD',
|
|
5216
|
+
'grainy dots': 'GrnD',
|
|
5217
|
+
'coarse dots': 'CrsD',
|
|
5218
|
+
'short lines': 'ShrL',
|
|
5219
|
+
'medium lines': 'MdmL',
|
|
5220
|
+
'long lines': 'LngL',
|
|
5221
|
+
'short strokes': 'ShSt',
|
|
5222
|
+
'medium strokes': 'MdmS',
|
|
5223
|
+
'long strokes': 'LngS',
|
|
5224
|
+
});
|
|
5225
|
+
exports.Lns = (0, helpers_1.createEnum)('Lns ', '50-300mm zoom', {
|
|
5226
|
+
'50-300mm zoom': 'Zm ',
|
|
5227
|
+
'32mm prime': 'Nkn ',
|
|
5228
|
+
'105mm prime': 'Nkn1',
|
|
5229
|
+
'movie prime': 'PnVs',
|
|
5230
|
+
});
|
|
5231
|
+
exports.blurType = (0, helpers_1.createEnum)('blurType', 'gaussian blur', {
|
|
5232
|
+
'gaussian blur': 'GsnB',
|
|
5233
|
+
'lens blur': 'lensBlur',
|
|
5234
|
+
'motion blur': 'MtnB',
|
|
5235
|
+
});
|
|
5236
|
+
exports.DfsM = (0, helpers_1.createEnum)('DfsM', 'normal', {
|
|
5237
|
+
'normal': 'Nrml',
|
|
5238
|
+
'darken only': 'DrkO',
|
|
5239
|
+
'lighten only': 'LghO',
|
|
5240
|
+
'anisotropic': 'anisotropic',
|
|
5241
|
+
});
|
|
5242
|
+
exports.ExtT = (0, helpers_1.createEnum)('ExtT', 'blocks', {
|
|
5243
|
+
blocks: 'Blks',
|
|
5244
|
+
pyramids: 'Pyrm',
|
|
5245
|
+
});
|
|
5246
|
+
exports.ExtR = (0, helpers_1.createEnum)('ExtR', 'random', {
|
|
5247
|
+
random: 'Rndm',
|
|
5248
|
+
'level-based': 'LvlB',
|
|
5249
|
+
});
|
|
5250
|
+
exports.FlCl = (0, helpers_1.createEnum)('FlCl', 'background color', {
|
|
5251
|
+
'background color': 'FlBc',
|
|
5252
|
+
'foreground color': 'FlFr',
|
|
5253
|
+
'inverse image': 'FlIn',
|
|
5254
|
+
'unaltered image': 'FlSm',
|
|
5255
|
+
});
|
|
5256
|
+
exports.CntE = (0, helpers_1.createEnum)('CntE', 'upper', {
|
|
5257
|
+
lower: 'Lwr ',
|
|
5258
|
+
upper: 'Upr ',
|
|
5259
|
+
});
|
|
5260
|
+
exports.WndM = (0, helpers_1.createEnum)('WndM', 'wind', {
|
|
5261
|
+
wind: 'Wnd ',
|
|
5262
|
+
blast: 'Blst',
|
|
5263
|
+
stagger: 'Stgr',
|
|
5264
|
+
});
|
|
5265
|
+
exports.Drct = (0, helpers_1.createEnum)('Drct', 'from the right', {
|
|
5266
|
+
left: 'Left',
|
|
5267
|
+
right: 'Rght',
|
|
5268
|
+
});
|
|
5269
|
+
exports.IntE = (0, helpers_1.createEnum)('IntE', 'odd lines', {
|
|
5270
|
+
'odd lines': 'ElmO',
|
|
5271
|
+
'even lines': 'ElmE',
|
|
5272
|
+
});
|
|
5273
|
+
exports.IntC = (0, helpers_1.createEnum)('IntC', 'interpolation', {
|
|
5274
|
+
duplication: 'CrtD',
|
|
5275
|
+
interpolation: 'CrtI',
|
|
5276
|
+
});
|
|
5277
|
+
exports.FlMd = (0, helpers_1.createEnum)('FlMd', 'wrap around', {
|
|
5278
|
+
'set to transparent': 'Bckg',
|
|
5279
|
+
'repeat edge pixels': 'Rpt ',
|
|
5280
|
+
'wrap around': 'Wrp ',
|
|
5281
|
+
});
|
|
5282
|
+
exports.prjM = (0, helpers_1.createEnum)('prjM', 'fisheye', {
|
|
5283
|
+
'fisheye': 'fisP',
|
|
5284
|
+
'perspective': 'perP',
|
|
5285
|
+
'auto': 'auto',
|
|
5286
|
+
'full spherical': 'fusP',
|
|
5287
|
+
});
|
|
4342
5288
|
|
|
4343
5289
|
},{"./helpers":7,"./psdReader":11,"./psdWriter":12}],5:[function(require,module,exports){
|
|
4344
5290
|
"use strict";
|
|
@@ -5734,15 +6680,14 @@ function (// Timeline Information
|
|
|
5734
6680
|
target) { return target.timelineInformation !== undefined; }, function (reader, target, _, options) {
|
|
5735
6681
|
var _a, _b;
|
|
5736
6682
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader);
|
|
5737
|
-
// console.log('1075', require('util').inspect(desc, false, 99, true));
|
|
5738
6683
|
target.timelineInformation = {
|
|
5739
6684
|
enabled: desc.enab,
|
|
5740
|
-
frameStep: desc.frameStep,
|
|
6685
|
+
frameStep: (0, descriptor_1.frac)(desc.frameStep),
|
|
5741
6686
|
frameRate: desc.frameRate,
|
|
5742
|
-
time: desc.time,
|
|
5743
|
-
duration: desc.duration,
|
|
5744
|
-
workInTime: desc.workInTime,
|
|
5745
|
-
workOutTime: desc.workOutTime,
|
|
6687
|
+
time: (0, descriptor_1.frac)(desc.time),
|
|
6688
|
+
duration: (0, descriptor_1.frac)(desc.duration),
|
|
6689
|
+
workInTime: (0, descriptor_1.frac)(desc.workInTime),
|
|
6690
|
+
workOutTime: (0, descriptor_1.frac)(desc.workOutTime),
|
|
5746
6691
|
repeats: desc.LCnt,
|
|
5747
6692
|
hasMotion: desc.hasMotion,
|
|
5748
6693
|
globalTracks: (0, descriptor_1.parseTrackList)(desc.globalTrackList, !!options.logMissingFeatures),
|
|
@@ -5755,10 +6700,10 @@ target) { return target.timelineInformation !== undefined; }, function (reader,
|
|
|
5755
6700
|
var clipID = _a.clipID, timeScope = _a.timeScope, muted = _a.muted, audioLevel = _a.audioLevel, frameReader = _a.frameReader;
|
|
5756
6701
|
return ({
|
|
5757
6702
|
id: clipID,
|
|
5758
|
-
start: timeScope.Strt,
|
|
5759
|
-
duration: timeScope.duration,
|
|
5760
|
-
inTime: timeScope.inTime,
|
|
5761
|
-
outTime: timeScope.outTime,
|
|
6703
|
+
start: (0, descriptor_1.frac)(timeScope.Strt),
|
|
6704
|
+
duration: (0, descriptor_1.frac)(timeScope.duration),
|
|
6705
|
+
inTime: (0, descriptor_1.frac)(timeScope.inTime),
|
|
6706
|
+
outTime: (0, descriptor_1.frac)(timeScope.outTime),
|
|
5762
6707
|
muted: muted,
|
|
5763
6708
|
audioLevel: audioLevel,
|
|
5764
6709
|
frameReader: {
|
|
@@ -5819,14 +6764,12 @@ target) { return target.timelineInformation !== undefined; }, function (reader,
|
|
|
5819
6764
|
},
|
|
5820
6765
|
hasMotion: timeline.hasMotion,
|
|
5821
6766
|
};
|
|
5822
|
-
// console.log('WRITE:1075', require('util').inspect(desc, false, 99, true));
|
|
5823
6767
|
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'null', desc, 'anim');
|
|
5824
6768
|
});
|
|
5825
6769
|
addHandler(1076, // Sheet Disclosure
|
|
5826
6770
|
function (// Sheet Disclosure
|
|
5827
6771
|
target) { return target.sheetDisclosure !== undefined; }, function (reader, target) {
|
|
5828
6772
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader);
|
|
5829
|
-
// console.log('1076', require('util').inspect(desc, false, 99, true));
|
|
5830
6773
|
target.sheetDisclosure = {};
|
|
5831
6774
|
if (desc.sheetTimelineOptions) {
|
|
5832
6775
|
target.sheetDisclosure.sheetTimelineOptions = desc.sheetTimelineOptions.map(function (o) { return ({
|
|
@@ -5908,10 +6851,10 @@ target) { return target.slices ? target.slices.length : 0; }, function (reader,
|
|
|
5908
6851
|
var associatedLayerId = origin_1 == 'layer' ? (0, psdReader_1.readUint32)(reader) : 0;
|
|
5909
6852
|
var name_3 = (0, psdReader_1.readUnicodeString)(reader);
|
|
5910
6853
|
var type = clamped(sliceTypes, (0, psdReader_1.readUint32)(reader));
|
|
5911
|
-
var top_2 = (0, psdReader_1.readInt32)(reader);
|
|
5912
6854
|
var left_1 = (0, psdReader_1.readInt32)(reader);
|
|
5913
|
-
var
|
|
6855
|
+
var top_2 = (0, psdReader_1.readInt32)(reader);
|
|
5914
6856
|
var right_1 = (0, psdReader_1.readInt32)(reader);
|
|
6857
|
+
var bottom_1 = (0, psdReader_1.readInt32)(reader);
|
|
5915
6858
|
var url = (0, psdReader_1.readUnicodeString)(reader);
|
|
5916
6859
|
var target_1 = (0, psdReader_1.readUnicodeString)(reader);
|
|
5917
6860
|
var message = (0, psdReader_1.readUnicodeString)(reader);
|
|
@@ -5944,7 +6887,6 @@ target) { return target.slices ? target.slices.length : 0; }, function (reader,
|
|
|
5944
6887
|
backgroundColorType: backgroundColorType,
|
|
5945
6888
|
backgroundColor: { r: r, g: g, b: b, a: a },
|
|
5946
6889
|
});
|
|
5947
|
-
// console.log(require('util').inspect(slices[slices.length - 1], false, 99, true));
|
|
5948
6890
|
}
|
|
5949
6891
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader);
|
|
5950
6892
|
desc.slices.forEach(function (d) {
|
|
@@ -5956,12 +6898,9 @@ target) { return target.slices ? target.slices.length : 0; }, function (reader,
|
|
|
5956
6898
|
slice.rightOutset = d.rightOutset;
|
|
5957
6899
|
}
|
|
5958
6900
|
});
|
|
5959
|
-
// console.log(require('util').inspect(desc, false, 99, true));
|
|
5960
|
-
// console.log(require('util').inspect(target.slices, false, 99, true));
|
|
5961
6901
|
}
|
|
5962
6902
|
else if (version == 7 || version == 8) {
|
|
5963
6903
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader);
|
|
5964
|
-
// console.log(require('util').inspect(desc, false, 99, true));
|
|
5965
6904
|
if (!target.slices)
|
|
5966
6905
|
target.slices = [];
|
|
5967
6906
|
target.slices.push({
|
|
@@ -6021,10 +6960,10 @@ target) { return target.slices ? target.slices.length : 0; }, function (reader,
|
|
|
6021
6960
|
(0, psdWriter_1.writeUint32)(writer, slice.associatedLayerId);
|
|
6022
6961
|
(0, psdWriter_1.writeUnicodeString)(writer, slice.name);
|
|
6023
6962
|
(0, psdWriter_1.writeUint32)(writer, sliceTypes.indexOf(slice.type));
|
|
6024
|
-
(0, psdWriter_1.writeInt32)(writer, slice.bounds.top);
|
|
6025
6963
|
(0, psdWriter_1.writeInt32)(writer, slice.bounds.left);
|
|
6026
|
-
(0, psdWriter_1.writeInt32)(writer, slice.bounds.
|
|
6964
|
+
(0, psdWriter_1.writeInt32)(writer, slice.bounds.top);
|
|
6027
6965
|
(0, psdWriter_1.writeInt32)(writer, slice.bounds.right);
|
|
6966
|
+
(0, psdWriter_1.writeInt32)(writer, slice.bounds.bottom);
|
|
6028
6967
|
(0, psdWriter_1.writeUnicodeString)(writer, slice.url);
|
|
6029
6968
|
(0, psdWriter_1.writeUnicodeString)(writer, slice.target);
|
|
6030
6969
|
(0, psdWriter_1.writeUnicodeString)(writer, slice.message);
|
|
@@ -6176,7 +7115,6 @@ addHandler(7001, function (target) { return target.imageReadyDataSets !== undefi
|
|
|
6176
7115
|
});
|
|
6177
7116
|
addHandler(1088, function (target) { return target.pathSelectionState !== undefined; }, function (reader, target, _left) {
|
|
6178
7117
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader);
|
|
6179
|
-
// console.log(require('util').inspect(desc, false, 99, true));
|
|
6180
7118
|
target.pathSelectionState = desc['null'];
|
|
6181
7119
|
}, function (writer, target) {
|
|
6182
7120
|
var desc = { 'null': target.pathSelectionState };
|
|
@@ -6422,7 +7360,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
6422
7360
|
return __assign.apply(this, arguments);
|
|
6423
7361
|
};
|
|
6424
7362
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6425
|
-
exports.readPattern = exports.readColor = exports.readSection = exports.readDataRLE = exports.readDataZipWithoutPrediction = exports.readPsd = exports.checkSignature = exports.skipBytes = exports.readAsciiString = exports.readUnicodeStringWithLength = exports.readUnicodeString = exports.readPascalString = exports.readSignature = exports.readBytes = exports.readFixedPointPath32 = exports.readFixedPoint32 = exports.readFloat64 = exports.readFloat32 = exports.readUint32 = exports.readInt32LE = exports.readInt32 = exports.readUint16 = exports.readInt16 = exports.peekUint8 = exports.readUint8 = exports.warnOrThrow = exports.createReader = exports.supportedColorModes = void 0;
|
|
7363
|
+
exports.readPattern = exports.readColor = exports.readSection = exports.readDataRLE = exports.readDataZipWithoutPrediction = exports.readPsd = exports.checkSignature = exports.skipBytes = exports.readAsciiString = exports.readUnicodeStringWithLengthLE = exports.readUnicodeStringWithLength = exports.readUnicodeString = exports.readPascalString = exports.readSignature = exports.readBytes = exports.readFixedPointPath32 = exports.readFixedPoint32 = exports.readFloat64 = exports.readFloat32 = exports.readUint32 = exports.readInt32LE = exports.readInt32 = exports.readUint16LE = exports.readUint16 = exports.readInt16 = exports.peekUint8 = exports.readUint8 = exports.warnOrThrow = exports.createReader = exports.supportedColorModes = void 0;
|
|
6426
7364
|
var pako_1 = require("pako");
|
|
6427
7365
|
var helpers_1 = require("./helpers");
|
|
6428
7366
|
var additionalInfo_1 = require("./additionalInfo");
|
|
@@ -6467,6 +7405,11 @@ function readUint16(reader) {
|
|
|
6467
7405
|
return reader.view.getUint16(reader.offset - 2, false);
|
|
6468
7406
|
}
|
|
6469
7407
|
exports.readUint16 = readUint16;
|
|
7408
|
+
function readUint16LE(reader) {
|
|
7409
|
+
reader.offset += 2;
|
|
7410
|
+
return reader.view.getUint16(reader.offset - 2, true);
|
|
7411
|
+
}
|
|
7412
|
+
exports.readUint16LE = readUint16LE;
|
|
6470
7413
|
function readInt32(reader) {
|
|
6471
7414
|
reader.offset += 4;
|
|
6472
7415
|
return reader.view.getInt32(reader.offset - 4, false);
|
|
@@ -6550,6 +7493,17 @@ function readUnicodeStringWithLength(reader, length) {
|
|
|
6550
7493
|
return text;
|
|
6551
7494
|
}
|
|
6552
7495
|
exports.readUnicodeStringWithLength = readUnicodeStringWithLength;
|
|
7496
|
+
function readUnicodeStringWithLengthLE(reader, length) {
|
|
7497
|
+
var text = '';
|
|
7498
|
+
while (length--) {
|
|
7499
|
+
var value = readUint16LE(reader);
|
|
7500
|
+
if (value || length > 0) { // remove trailing \0
|
|
7501
|
+
text += String.fromCharCode(value);
|
|
7502
|
+
}
|
|
7503
|
+
}
|
|
7504
|
+
return text;
|
|
7505
|
+
}
|
|
7506
|
+
exports.readUnicodeStringWithLengthLE = readUnicodeStringWithLengthLE;
|
|
6553
7507
|
function readAsciiString(reader, length) {
|
|
6554
7508
|
var text = '';
|
|
6555
7509
|
while (length--) {
|
|
@@ -6757,14 +7711,14 @@ function readLayerRecord(reader, psd, options) {
|
|
|
6757
7711
|
var channelCount = readUint16(reader);
|
|
6758
7712
|
var channels = [];
|
|
6759
7713
|
for (var i = 0; i < channelCount; i++) {
|
|
6760
|
-
var
|
|
6761
|
-
var
|
|
7714
|
+
var id = readInt16(reader);
|
|
7715
|
+
var length_1 = readUint32(reader);
|
|
6762
7716
|
if (options.large) {
|
|
6763
|
-
if (
|
|
7717
|
+
if (length_1 !== 0)
|
|
6764
7718
|
throw new Error('Sizes larger than 4GB are not supported');
|
|
6765
|
-
|
|
7719
|
+
length_1 = readUint32(reader);
|
|
6766
7720
|
}
|
|
6767
|
-
channels.push({ id:
|
|
7721
|
+
channels.push({ id: id, length: length_1 });
|
|
6768
7722
|
}
|
|
6769
7723
|
checkSignature(reader, '8BIM');
|
|
6770
7724
|
var blendMode = readSignature(reader);
|
|
@@ -6776,11 +7730,12 @@ function readLayerRecord(reader, psd, options) {
|
|
|
6776
7730
|
var flags = readUint8(reader);
|
|
6777
7731
|
layer.transparencyProtected = (flags & 0x01) !== 0;
|
|
6778
7732
|
layer.hidden = (flags & 0x02) !== 0;
|
|
7733
|
+
if (flags & 0x20)
|
|
7734
|
+
layer.effectsOpen = true;
|
|
6779
7735
|
// 0x04 - obsolete
|
|
6780
7736
|
// 0x08 - 1 for Photoshop 5.0 and later, tells if bit 4 has useful information
|
|
6781
7737
|
// 0x10 - pixel data irrelevant to appearance of document
|
|
6782
|
-
// 0x20 -
|
|
6783
|
-
// if (flags & 0x20) (layer as any)._2 = true; // TEMP !!!!
|
|
7738
|
+
// 0x20 - effects/filters panel is expanded
|
|
6784
7739
|
skipBytes(reader, 1);
|
|
6785
7740
|
readSection(reader, 1, function (left) {
|
|
6786
7741
|
var mask = readLayerMaskData(reader, options);
|
|
@@ -7184,9 +8139,9 @@ function readDataRLE(reader, pixelData, _width, height, step, offsets, large) {
|
|
|
7184
8139
|
}
|
|
7185
8140
|
else {
|
|
7186
8141
|
for (var y = 0, p = offset | 0; y < height; y++, li++) {
|
|
7187
|
-
var
|
|
7188
|
-
var buffer = readBytes(reader,
|
|
7189
|
-
for (var i = 0; i <
|
|
8142
|
+
var length_2 = lengths[li];
|
|
8143
|
+
var buffer = readBytes(reader, length_2);
|
|
8144
|
+
for (var i = 0; i < length_2; i++) {
|
|
7190
8145
|
var header = buffer[i];
|
|
7191
8146
|
if (header > 128) {
|
|
7192
8147
|
var value = buffer[++i];
|
|
@@ -7330,7 +8285,7 @@ function readPattern(reader) {
|
|
|
7330
8285
|
var has = readUint32(reader);
|
|
7331
8286
|
if (!has)
|
|
7332
8287
|
continue;
|
|
7333
|
-
var
|
|
8288
|
+
var length_3 = readUint32(reader);
|
|
7334
8289
|
var pixelDepth = readUint32(reader);
|
|
7335
8290
|
var ctop = readUint32(reader);
|
|
7336
8291
|
var cleft = readUint32(reader);
|
|
@@ -7338,7 +8293,7 @@ function readPattern(reader) {
|
|
|
7338
8293
|
var cright = readUint32(reader);
|
|
7339
8294
|
var pixelDepth2 = readUint16(reader);
|
|
7340
8295
|
var compressionMode = readUint8(reader); // 0 - raw, 1 - zip
|
|
7341
|
-
var dataLength =
|
|
8296
|
+
var dataLength = length_3 - (4 + 16 + 2 + 1);
|
|
7342
8297
|
var cdata = readBytes(reader, dataLength);
|
|
7343
8298
|
if (pixelDepth !== 8 || pixelDepth2 !== 8) {
|
|
7344
8299
|
throw new Error('16bit pixel depth not supported for patterns');
|
|
@@ -7409,7 +8364,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
7409
8364
|
return __assign.apply(this, arguments);
|
|
7410
8365
|
};
|
|
7411
8366
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7412
|
-
exports.writeColor = exports.writePsd = exports.writeSection = exports.writeUnicodeStringWithPadding = exports.writeUnicodeString = exports.writePascalString = exports.writeSignature = exports.writeZeros = exports.writeBytes = exports.writeFixedPointPath32 = exports.writeFixedPoint32 = exports.writeFloat64 = exports.writeFloat32 = exports.writeUint32 = exports.writeInt32 = exports.writeUint16 = exports.writeInt16 = exports.writeUint8 = exports.getWriterBufferNoCopy = exports.getWriterBuffer = exports.createWriter = void 0;
|
|
8367
|
+
exports.writeColor = exports.writePsd = exports.writeSection = exports.writeUnicodeStringWithPadding = exports.writeUnicodeString = exports.writeUnicodeStringWithoutLengthLE = exports.writeUnicodeStringWithoutLength = exports.writePascalString = exports.writeSignature = exports.writeZeros = exports.writeBytes = exports.writeFixedPointPath32 = exports.writeFixedPoint32 = exports.writeFloat64 = exports.writeFloat32 = exports.writeUint32 = exports.writeInt32LE = exports.writeInt32 = exports.writeUint16LE = exports.writeUint16 = exports.writeInt16 = exports.writeUint8 = exports.getWriterBufferNoCopy = exports.getWriterBuffer = exports.createWriter = void 0;
|
|
7413
8368
|
var helpers_1 = require("./helpers");
|
|
7414
8369
|
var additionalInfo_1 = require("./additionalInfo");
|
|
7415
8370
|
var imageResources_1 = require("./imageResources");
|
|
@@ -7444,11 +8399,21 @@ function writeUint16(writer, value) {
|
|
|
7444
8399
|
writer.view.setUint16(offset, value, false);
|
|
7445
8400
|
}
|
|
7446
8401
|
exports.writeUint16 = writeUint16;
|
|
8402
|
+
function writeUint16LE(writer, value) {
|
|
8403
|
+
var offset = addSize(writer, 2);
|
|
8404
|
+
writer.view.setUint16(offset, value, true);
|
|
8405
|
+
}
|
|
8406
|
+
exports.writeUint16LE = writeUint16LE;
|
|
7447
8407
|
function writeInt32(writer, value) {
|
|
7448
8408
|
var offset = addSize(writer, 4);
|
|
7449
8409
|
writer.view.setInt32(offset, value, false);
|
|
7450
8410
|
}
|
|
7451
8411
|
exports.writeInt32 = writeInt32;
|
|
8412
|
+
function writeInt32LE(writer, value) {
|
|
8413
|
+
var offset = addSize(writer, 4);
|
|
8414
|
+
writer.view.setInt32(offset, value, true);
|
|
8415
|
+
}
|
|
8416
|
+
exports.writeInt32LE = writeInt32LE;
|
|
7452
8417
|
function writeUint32(writer, value) {
|
|
7453
8418
|
var offset = addSize(writer, 4);
|
|
7454
8419
|
writer.view.setUint32(offset, value, false);
|
|
@@ -7502,6 +8467,7 @@ function writePascalString(writer, text, padTo) {
|
|
|
7502
8467
|
writeUint8(writer, length);
|
|
7503
8468
|
for (var i = 0; i < length; i++) {
|
|
7504
8469
|
var code = text.charCodeAt(i);
|
|
8470
|
+
// writeUint8(writer, code); // for testing
|
|
7505
8471
|
writeUint8(writer, code < 128 ? code : '?'.charCodeAt(0));
|
|
7506
8472
|
}
|
|
7507
8473
|
while (++length % padTo) {
|
|
@@ -7509,12 +8475,22 @@ function writePascalString(writer, text, padTo) {
|
|
|
7509
8475
|
}
|
|
7510
8476
|
}
|
|
7511
8477
|
exports.writePascalString = writePascalString;
|
|
7512
|
-
function
|
|
7513
|
-
writeUint32(writer, text.length);
|
|
8478
|
+
function writeUnicodeStringWithoutLength(writer, text) {
|
|
7514
8479
|
for (var i = 0; i < text.length; i++) {
|
|
7515
8480
|
writeUint16(writer, text.charCodeAt(i));
|
|
7516
8481
|
}
|
|
7517
8482
|
}
|
|
8483
|
+
exports.writeUnicodeStringWithoutLength = writeUnicodeStringWithoutLength;
|
|
8484
|
+
function writeUnicodeStringWithoutLengthLE(writer, text) {
|
|
8485
|
+
for (var i = 0; i < text.length; i++) {
|
|
8486
|
+
writeUint16LE(writer, text.charCodeAt(i));
|
|
8487
|
+
}
|
|
8488
|
+
}
|
|
8489
|
+
exports.writeUnicodeStringWithoutLengthLE = writeUnicodeStringWithoutLengthLE;
|
|
8490
|
+
function writeUnicodeString(writer, text) {
|
|
8491
|
+
writeUint32(writer, text.length);
|
|
8492
|
+
writeUnicodeStringWithoutLength(writer, text);
|
|
8493
|
+
}
|
|
7518
8494
|
exports.writeUnicodeString = writeUnicodeString;
|
|
7519
8495
|
function writeUnicodeStringWithPadding(writer, text) {
|
|
7520
8496
|
writeUint32(writer, text.length + 1);
|
|
@@ -7685,10 +8661,8 @@ function writeLayerInfo(tempBuffer, writer, psd, globalAlpha, options) {
|
|
|
7685
8661
|
if (layer.vectorMask || (layer.sectionDivider && layer.sectionDivider.type !== 0 /* SectionDividerType.Other */)) {
|
|
7686
8662
|
flags |= 0x10; // pixel data irrelevant to appearance of document
|
|
7687
8663
|
}
|
|
7688
|
-
if (layer.
|
|
7689
|
-
flags |= 0x20;
|
|
7690
|
-
}
|
|
7691
|
-
// if ('_2' in layer) flags |= 0x20; // TEMP!!!
|
|
8664
|
+
if (layer.effectsOpen)
|
|
8665
|
+
flags |= 0x20;
|
|
7692
8666
|
writeUint8(writer, flags);
|
|
7693
8667
|
writeUint8(writer, 0); // filler
|
|
7694
8668
|
writeSection(writer, 1, function () {
|