ag-psd 21.0.1 → 22.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/additionalInfo.d.ts +2 -2
- package/dist/additionalInfo.js +30 -17
- package/dist/additionalInfo.js.map +1 -1
- package/dist/bundle.js +110 -97
- package/dist/descriptor.js +1 -0
- package/dist/descriptor.js.map +1 -1
- package/dist/imageResources.d.ts +2 -2
- package/dist/imageResources.js +16 -18
- package/dist/imageResources.js.map +1 -1
- package/dist/psd.d.ts +8 -1
- package/dist/psd.js.map +1 -1
- package/dist/psdReader.d.ts +7 -9
- package/dist/psdReader.js +63 -62
- package/dist/psdReader.js.map +1 -1
- package/dist-es/additionalInfo.d.ts +2 -2
- package/dist-es/additionalInfo.js +30 -17
- package/dist-es/additionalInfo.js.map +1 -1
- package/dist-es/descriptor.js +1 -0
- package/dist-es/descriptor.js.map +1 -1
- package/dist-es/imageResources.d.ts +2 -2
- package/dist-es/imageResources.js +16 -18
- package/dist-es/imageResources.js.map +1 -1
- package/dist-es/psd.d.ts +8 -1
- package/dist-es/psd.js.map +1 -1
- package/dist-es/psdReader.d.ts +7 -9
- package/dist-es/psdReader.js +61 -61
- package/dist-es/psdReader.js.map +1 -1
- package/package.json +1 -1
- package/src/additionalInfo.ts +30 -19
- package/src/descriptor.ts +1 -0
- package/src/engineData2.ts +2 -2
- package/src/imageResources.ts +19 -19
- package/src/psd.ts +10 -2
- package/src/psdReader.ts +67 -58
package/dist/bundle.js
CHANGED
|
@@ -689,14 +689,14 @@ addHandler('vogk', hasKey('vectorOrigination'), function (reader, target, left)
|
|
|
689
689
|
(0, psdWriter_1.writeInt32)(writer, 1); // version
|
|
690
690
|
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'null', desc);
|
|
691
691
|
});
|
|
692
|
-
addHandler('lmfx', function (target) { return target.effects !== undefined && hasMultiEffects(target.effects); }, function (reader, target, left
|
|
692
|
+
addHandler('lmfx', function (target) { return target.effects !== undefined && hasMultiEffects(target.effects); }, function (reader, target, left) {
|
|
693
693
|
var version = (0, psdReader_1.readUint32)(reader);
|
|
694
694
|
if (version !== 0)
|
|
695
695
|
throw new Error('Invalid lmfx version');
|
|
696
696
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader);
|
|
697
697
|
// console.log(require('util').inspect(info, false, 99, true));
|
|
698
698
|
// discard if read in 'lrFX' or 'lfx2' section
|
|
699
|
-
target.effects = (0, descriptor_1.parseEffects)(desc, !!
|
|
699
|
+
target.effects = (0, descriptor_1.parseEffects)(desc, !!reader.logMissingFeatures);
|
|
700
700
|
(0, psdReader_1.skipBytes)(reader, left());
|
|
701
701
|
}, function (writer, target, _, options) {
|
|
702
702
|
var desc = (0, descriptor_1.serializeEffects)(target.effects, !!options.logMissingFeatures, true);
|
|
@@ -711,7 +711,20 @@ addHandler('lrFX', hasKey('effects'), function (reader, target, left) {
|
|
|
711
711
|
(0, effectsHelpers_1.writeEffects)(writer, target.effects);
|
|
712
712
|
});
|
|
713
713
|
addHandler('luni', hasKey('name'), function (reader, target, left) {
|
|
714
|
-
|
|
714
|
+
if (left() > 4) {
|
|
715
|
+
var length_1 = (0, psdReader_1.readUint32)(reader);
|
|
716
|
+
if (left() >= (length_1 * 2)) {
|
|
717
|
+
target.name = (0, psdReader_1.readUnicodeStringWithLength)(reader, length_1);
|
|
718
|
+
}
|
|
719
|
+
else {
|
|
720
|
+
if (reader.logDevFeatures)
|
|
721
|
+
reader.log('name in luni section is too long');
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
else {
|
|
725
|
+
if (reader.logDevFeatures)
|
|
726
|
+
reader.log('empty luni section');
|
|
727
|
+
}
|
|
715
728
|
(0, psdReader_1.skipBytes)(reader, left());
|
|
716
729
|
}, function (writer, target) {
|
|
717
730
|
(0, psdWriter_1.writeUnicodeString)(writer, target.name);
|
|
@@ -802,7 +815,7 @@ addHandler('lclr', hasKey('layerColor'), function (reader, target) {
|
|
|
802
815
|
(0, psdWriter_1.writeZeros)(writer, 6);
|
|
803
816
|
});
|
|
804
817
|
addHandler('shmd', function (target) { return target.timestamp !== undefined || target.animationFrames !== undefined ||
|
|
805
|
-
target.animationFrameFlags !== undefined || target.timeline !== undefined || target.comps !== undefined; }, function (reader, target, left
|
|
818
|
+
target.animationFrameFlags !== undefined || target.timeline !== undefined || target.comps !== undefined; }, function (reader, target, left) {
|
|
806
819
|
var count = (0, psdReader_1.readUint32)(reader);
|
|
807
820
|
var _loop_1 = function (i) {
|
|
808
821
|
(0, psdReader_1.checkSignature)(reader, '8BIM');
|
|
@@ -830,7 +843,7 @@ addHandler('shmd', function (target) { return target.timestamp !== undefined ||
|
|
|
830
843
|
if (f.FXRf)
|
|
831
844
|
frame.referencePoint = (0, descriptor_1.horzVrtcToXY)(f.FXRf);
|
|
832
845
|
if (f.Lefx)
|
|
833
|
-
frame.effects = (0, descriptor_1.parseEffects)(f.Lefx, !!
|
|
846
|
+
frame.effects = (0, descriptor_1.parseEffects)(f.Lefx, !!reader.logMissingFeatures);
|
|
834
847
|
if (f.blendOptions && f.blendOptions.Opct)
|
|
835
848
|
frame.opacity = (0, descriptor_1.parsePercent)(f.blendOptions.Opct);
|
|
836
849
|
target.animationFrames.push(frame);
|
|
@@ -861,7 +874,7 @@ addHandler('shmd', function (target) { return target.timestamp !== undefined ||
|
|
|
861
874
|
audioLevel: desc.audioLevel,
|
|
862
875
|
};
|
|
863
876
|
if (desc.trackList) {
|
|
864
|
-
timeline.tracks = (0, descriptor_1.parseTrackList)(desc.trackList, !!
|
|
877
|
+
timeline.tracks = (0, descriptor_1.parseTrackList)(desc.trackList, !!reader.logMissingFeatures);
|
|
865
878
|
}
|
|
866
879
|
target.timeline = timeline;
|
|
867
880
|
// console.log('tmln:result', target.name, target.id, require('util').inspect(timeline, false, 99, true));
|
|
@@ -887,7 +900,7 @@ addHandler('shmd', function (target) { return target.timestamp !== undefined ||
|
|
|
887
900
|
}
|
|
888
901
|
}
|
|
889
902
|
else {
|
|
890
|
-
|
|
903
|
+
reader.logMissingFeatures && reader.log('Unhandled "shmd" section key', key);
|
|
891
904
|
}
|
|
892
905
|
(0, psdReader_1.skipBytes)(reader, left());
|
|
893
906
|
});
|
|
@@ -2101,7 +2114,7 @@ function getWarpFromPlacedLayer(placed) {
|
|
|
2101
2114
|
},
|
|
2102
2115
|
};
|
|
2103
2116
|
}
|
|
2104
|
-
addHandler('SoLd', hasKey('placedLayer'), function (reader, target, left
|
|
2117
|
+
addHandler('SoLd', hasKey('placedLayer'), function (reader, target, left) {
|
|
2105
2118
|
if ((0, psdReader_1.readSignature)(reader) !== 'soLD')
|
|
2106
2119
|
throw new Error("Invalid SoLd type");
|
|
2107
2120
|
var version = (0, psdReader_1.readInt32)(reader);
|
|
@@ -2144,7 +2157,7 @@ addHandler('SoLd', hasKey('placedLayer'), function (reader, target, left, _, opt
|
|
|
2144
2157
|
};
|
|
2145
2158
|
}
|
|
2146
2159
|
if (desc.filterFX)
|
|
2147
|
-
target.placedLayer.filter = parseFilterFX(desc.filterFX,
|
|
2160
|
+
target.placedLayer.filter = parseFilterFX(desc.filterFX, reader);
|
|
2148
2161
|
// console.log('filter', require('util').inspect(target.placedLayer.filter, false, 99, true));
|
|
2149
2162
|
(0, psdReader_1.skipBytes)(reader, left()); // HACK
|
|
2150
2163
|
}, function (writer, target) {
|
|
@@ -2215,12 +2228,12 @@ addHandler('fxrp', hasKey('referencePoint'), function (reader, target) {
|
|
|
2215
2228
|
(0, psdWriter_1.writeFloat64)(writer, target.referencePoint.x);
|
|
2216
2229
|
(0, psdWriter_1.writeFloat64)(writer, target.referencePoint.y);
|
|
2217
2230
|
});
|
|
2218
|
-
addHandler('Lr16', function () { return false; }, function (reader, _target, _left, psd
|
|
2219
|
-
(0, psdReader_1.readLayerInfo)(reader, psd
|
|
2231
|
+
addHandler('Lr16', function () { return false; }, function (reader, _target, _left, psd) {
|
|
2232
|
+
(0, psdReader_1.readLayerInfo)(reader, psd);
|
|
2220
2233
|
}, function (_writer, _target) {
|
|
2221
2234
|
});
|
|
2222
|
-
addHandler('Lr32', function () { return false; }, function (reader, _target, _left, psd
|
|
2223
|
-
(0, psdReader_1.readLayerInfo)(reader, psd
|
|
2235
|
+
addHandler('Lr32', function () { return false; }, function (reader, _target, _left, psd) {
|
|
2236
|
+
(0, psdReader_1.readLayerInfo)(reader, psd);
|
|
2224
2237
|
}, function (_writer, _target) {
|
|
2225
2238
|
});
|
|
2226
2239
|
addHandler('LMsk', hasKey('userMask'), function (reader, target) {
|
|
@@ -2418,7 +2431,7 @@ addHandler('Anno', function (target) { return target.annotations !== undefined;
|
|
|
2418
2431
|
writer.view.setUint32(dataOffset - 4, writer.offset - dataOffset, false);
|
|
2419
2432
|
}
|
|
2420
2433
|
});
|
|
2421
|
-
addHandler('lnk2', function (target) { return !!target.linkedFiles && target.linkedFiles.length > 0; }, function (reader, target, left
|
|
2434
|
+
addHandler('lnk2', function (target) { return !!target.linkedFiles && target.linkedFiles.length > 0; }, function (reader, target, left) {
|
|
2422
2435
|
var psd = target;
|
|
2423
2436
|
psd.linkedFiles = psd.linkedFiles || [];
|
|
2424
2437
|
while (left() > 8) {
|
|
@@ -2474,7 +2487,7 @@ addHandler('lnk2', function (target) { return !!target.linkedFiles && target.lin
|
|
|
2474
2487
|
file.assetLockedState = (0, psdReader_1.readUint8)(reader);
|
|
2475
2488
|
if (type === 'liFE' && version === 2)
|
|
2476
2489
|
file.data = (0, psdReader_1.readBytes)(reader, fileSize);
|
|
2477
|
-
if (
|
|
2490
|
+
if (reader.skipLinkedFilesData)
|
|
2478
2491
|
file.data = undefined;
|
|
2479
2492
|
psd.linkedFiles.push(file);
|
|
2480
2493
|
linkedFileDescriptor;
|
|
@@ -3390,7 +3403,7 @@ function hasMultiEffects(effects) {
|
|
|
3390
3403
|
return Object.keys(effects).map(function (key) { return effects[key]; }).some(function (v) { return Array.isArray(v) && v.length > 1; });
|
|
3391
3404
|
}
|
|
3392
3405
|
exports.hasMultiEffects = hasMultiEffects;
|
|
3393
|
-
addHandler('lfx2', function (target) { return target.effects !== undefined && !hasMultiEffects(target.effects); }, function (reader, target, left
|
|
3406
|
+
addHandler('lfx2', function (target) { return target.effects !== undefined && !hasMultiEffects(target.effects); }, function (reader, target, left) {
|
|
3394
3407
|
var version = (0, psdReader_1.readUint32)(reader);
|
|
3395
3408
|
if (version !== 0)
|
|
3396
3409
|
throw new Error("Invalid lfx2 version");
|
|
@@ -3398,7 +3411,7 @@ addHandler('lfx2', function (target) { return target.effects !== undefined && !h
|
|
|
3398
3411
|
// console.log('READ', require('util').inspect(desc, false, 99, true));
|
|
3399
3412
|
// TODO: don't discard if we got it from lmfx
|
|
3400
3413
|
// discard if read in 'lrFX' section
|
|
3401
|
-
target.effects = (0, descriptor_1.parseEffects)(desc, !!
|
|
3414
|
+
target.effects = (0, descriptor_1.parseEffects)(desc, !!reader.logMissingFeatures);
|
|
3402
3415
|
(0, psdReader_1.skipBytes)(reader, left());
|
|
3403
3416
|
}, function (writer, target, _, options) {
|
|
3404
3417
|
var desc = (0, descriptor_1.serializeEffects)(target.effects, !!options.logMissingFeatures, true);
|
|
@@ -5337,6 +5350,7 @@ exports.gradientInterpolationMethodType = (0, helpers_1.createEnum)('gradientInt
|
|
|
5337
5350
|
perceptual: 'Perc',
|
|
5338
5351
|
linear: 'Lnr',
|
|
5339
5352
|
classic: 'Gcls',
|
|
5353
|
+
smooth: 'Smoo',
|
|
5340
5354
|
});
|
|
5341
5355
|
exports.ClrS = (0, helpers_1.createEnum)('ClrS', 'rgb', {
|
|
5342
5356
|
rgb: 'RGBC',
|
|
@@ -7000,7 +7014,7 @@ target) { return target.onionSkins !== undefined; }, function (reader, target) {
|
|
|
7000
7014
|
});
|
|
7001
7015
|
addHandler(1075, // Timeline Information
|
|
7002
7016
|
function (// Timeline Information
|
|
7003
|
-
target) { return target.timelineInformation !== undefined; }, function (reader, target
|
|
7017
|
+
target) { return target.timelineInformation !== undefined; }, function (reader, target) {
|
|
7004
7018
|
var _a, _b;
|
|
7005
7019
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader);
|
|
7006
7020
|
target.timelineInformation = {
|
|
@@ -7013,7 +7027,7 @@ target) { return target.timelineInformation !== undefined; }, function (reader,
|
|
|
7013
7027
|
workOutTime: (0, descriptor_1.frac)(desc.workOutTime),
|
|
7014
7028
|
repeats: desc.LCnt,
|
|
7015
7029
|
hasMotion: desc.hasMotion,
|
|
7016
|
-
globalTracks: (0, descriptor_1.parseTrackList)(desc.globalTrackList, !!
|
|
7030
|
+
globalTracks: (0, descriptor_1.parseTrackList)(desc.globalTrackList, !!reader.logMissingFeatures),
|
|
7017
7031
|
};
|
|
7018
7032
|
if ((_b = (_a = desc.audioClipGroupList) === null || _a === void 0 ? void 0 : _a.audioClipGroupList) === null || _b === void 0 ? void 0 : _b.length) {
|
|
7019
7033
|
target.timelineInformation.audioClipGroups = desc.audioClipGroupList.audioClipGroupList.map(function (g) { return ({
|
|
@@ -7120,12 +7134,12 @@ target) { return target.sheetDisclosure !== undefined; }, function (reader, targ
|
|
|
7120
7134
|
});
|
|
7121
7135
|
addHandler(1054, // URL List
|
|
7122
7136
|
function (// URL List
|
|
7123
|
-
target) { return target.urlsList !== undefined; }, function (reader, target
|
|
7137
|
+
target) { return target.urlsList !== undefined; }, function (reader, target) {
|
|
7124
7138
|
var count = (0, psdReader_1.readUint32)(reader);
|
|
7125
7139
|
target.urlsList = [];
|
|
7126
7140
|
for (var i = 0; i < count; i++) {
|
|
7127
7141
|
var long = (0, psdReader_1.readSignature)(reader);
|
|
7128
|
-
if (long !== 'slic' &&
|
|
7142
|
+
if (long !== 'slic' && reader.throwForMissingFeatures)
|
|
7129
7143
|
throw new Error('Unknown long');
|
|
7130
7144
|
var id = (0, psdReader_1.readUint32)(reader);
|
|
7131
7145
|
var url = (0, psdReader_1.readUnicodeString)(reader);
|
|
@@ -7319,7 +7333,7 @@ target) { return target._ir1039 !== undefined; }, function (reader, target, left
|
|
|
7319
7333
|
(0, psdWriter_1.writeBytes)(writer, target._ir1039);
|
|
7320
7334
|
});
|
|
7321
7335
|
addHandler(1044, function (target) { return target.idsSeedNumber !== undefined; }, function (reader, target) { return target.idsSeedNumber = (0, psdReader_1.readUint32)(reader); }, function (writer, target) { return (0, psdWriter_1.writeUint32)(writer, target.idsSeedNumber); });
|
|
7322
|
-
addHandler(1036, function (target) { return target.thumbnail !== undefined || target.thumbnailRaw !== undefined; }, function (reader, target, left
|
|
7336
|
+
addHandler(1036, function (target) { return target.thumbnail !== undefined || target.thumbnailRaw !== undefined; }, function (reader, target, left) {
|
|
7323
7337
|
var format = (0, psdReader_1.readUint32)(reader); // 1 = kJpegRGB, 0 = kRawRGB
|
|
7324
7338
|
var width = (0, psdReader_1.readUint32)(reader);
|
|
7325
7339
|
var height = (0, psdReader_1.readUint32)(reader);
|
|
@@ -7329,13 +7343,13 @@ addHandler(1036, function (target) { return target.thumbnail !== undefined || ta
|
|
|
7329
7343
|
var bitsPerPixel = (0, psdReader_1.readUint16)(reader); // 24
|
|
7330
7344
|
var planes = (0, psdReader_1.readUint16)(reader); // 1
|
|
7331
7345
|
if (format !== 1 || bitsPerPixel !== 24 || planes !== 1) {
|
|
7332
|
-
|
|
7346
|
+
reader.logMissingFeatures && reader.log("Invalid thumbnail data (format: ".concat(format, ", bitsPerPixel: ").concat(bitsPerPixel, ", planes: ").concat(planes, ")"));
|
|
7333
7347
|
(0, psdReader_1.skipBytes)(reader, left());
|
|
7334
7348
|
return;
|
|
7335
7349
|
}
|
|
7336
7350
|
var size = left();
|
|
7337
7351
|
var data = (0, psdReader_1.readBytes)(reader, size);
|
|
7338
|
-
if (
|
|
7352
|
+
if (reader.useRawThumbnail) {
|
|
7339
7353
|
target.thumbnailRaw = { width: width, height: height, data: data };
|
|
7340
7354
|
}
|
|
7341
7355
|
else if (data.byteLength) {
|
|
@@ -7434,8 +7448,7 @@ var FrmD = (0, helpers_1.createEnum)('FrmD', '', {
|
|
|
7434
7448
|
});
|
|
7435
7449
|
addHandler(4000, // Plug-In resource(s)
|
|
7436
7450
|
function (// Plug-In resource(s)
|
|
7437
|
-
target) { return target.animations !== undefined; }, function (reader, target, left
|
|
7438
|
-
var logMissingFeatures = _a.logMissingFeatures, logDevFeatures = _a.logDevFeatures;
|
|
7451
|
+
target) { return target.animations !== undefined; }, function (reader, target, left) {
|
|
7439
7452
|
var key = (0, psdReader_1.readSignature)(reader);
|
|
7440
7453
|
if (key === 'mani') {
|
|
7441
7454
|
(0, psdReader_1.checkSignature)(reader, 'IRFR');
|
|
@@ -7466,10 +7479,10 @@ target) { return target.animations !== undefined; }, function (reader, target, l
|
|
|
7466
7479
|
}
|
|
7467
7480
|
else if (key_1 === 'Roll') {
|
|
7468
7481
|
var bytes = (0, psdReader_1.readBytes)(reader, left());
|
|
7469
|
-
logDevFeatures &&
|
|
7482
|
+
reader.logDevFeatures && reader.log('#4000 Roll', bytes);
|
|
7470
7483
|
}
|
|
7471
7484
|
else {
|
|
7472
|
-
logMissingFeatures &&
|
|
7485
|
+
reader.logMissingFeatures && reader.log('Unhandled subsection in #4000', key_1);
|
|
7473
7486
|
}
|
|
7474
7487
|
});
|
|
7475
7488
|
};
|
|
@@ -7480,10 +7493,10 @@ target) { return target.animations !== undefined; }, function (reader, target, l
|
|
|
7480
7493
|
}
|
|
7481
7494
|
else if (key === 'mopt') {
|
|
7482
7495
|
var bytes = (0, psdReader_1.readBytes)(reader, left());
|
|
7483
|
-
logDevFeatures &&
|
|
7496
|
+
reader.logDevFeatures && reader.log('#4000 mopt', bytes);
|
|
7484
7497
|
}
|
|
7485
7498
|
else {
|
|
7486
|
-
logMissingFeatures &&
|
|
7499
|
+
reader.logMissingFeatures && reader.log('Unhandled key in #4000:', key);
|
|
7487
7500
|
}
|
|
7488
7501
|
}, function (writer, target) {
|
|
7489
7502
|
if (target.animations) {
|
|
@@ -7532,8 +7545,7 @@ target) { return target.animations !== undefined; }, function (reader, target, l
|
|
|
7532
7545
|
// TODO: Unfinished
|
|
7533
7546
|
helpers_1.MOCK_HANDLERS && addHandler(4001, // Plug-In resource(s)
|
|
7534
7547
|
function (// Plug-In resource(s)
|
|
7535
|
-
target) { return target._ir4001 !== undefined; }, function (reader, target, left
|
|
7536
|
-
var logMissingFeatures = _a.logMissingFeatures, logDevFeatures = _a.logDevFeatures;
|
|
7548
|
+
target) { return target._ir4001 !== undefined; }, function (reader, target, left) {
|
|
7537
7549
|
if (helpers_1.MOCK_HANDLERS) {
|
|
7538
7550
|
LOG_MOCK_HANDLERS && console.log('image resource 4001', left());
|
|
7539
7551
|
target._ir4001 = (0, psdReader_1.readBytes)(reader, left());
|
|
@@ -7546,14 +7558,14 @@ target) { return target._ir4001 !== undefined; }, function (reader, target, left
|
|
|
7546
7558
|
throw new Error('Invalid mfri version');
|
|
7547
7559
|
var length_1 = (0, psdReader_1.readUint32)(reader);
|
|
7548
7560
|
var bytes = (0, psdReader_1.readBytes)(reader, length_1);
|
|
7549
|
-
logDevFeatures &&
|
|
7561
|
+
reader.logDevFeatures && reader.log('mfri', bytes);
|
|
7550
7562
|
}
|
|
7551
7563
|
else if (key === 'mset') {
|
|
7552
7564
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader);
|
|
7553
|
-
logDevFeatures &&
|
|
7565
|
+
reader.logDevFeatures && reader.log('mset', desc);
|
|
7554
7566
|
}
|
|
7555
7567
|
else {
|
|
7556
|
-
logMissingFeatures &&
|
|
7568
|
+
reader.logMissingFeatures && reader.log('Unhandled key in #4001', key);
|
|
7557
7569
|
}
|
|
7558
7570
|
}, function (writer, target) {
|
|
7559
7571
|
(0, psdWriter_1.writeBytes)(writer, target._ir4001);
|
|
@@ -7656,19 +7668,8 @@ var LayerCompCapturedInfo;
|
|
|
7656
7668
|
|
|
7657
7669
|
},{}],11:[function(require,module,exports){
|
|
7658
7670
|
"use strict";
|
|
7659
|
-
var __assign = (this && this.__assign) || function () {
|
|
7660
|
-
__assign = Object.assign || function(t) {
|
|
7661
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
7662
|
-
s = arguments[i];
|
|
7663
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7664
|
-
t[p] = s[p];
|
|
7665
|
-
}
|
|
7666
|
-
return t;
|
|
7667
|
-
};
|
|
7668
|
-
return __assign.apply(this, arguments);
|
|
7669
|
-
};
|
|
7670
7671
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7671
|
-
exports.readPattern = exports.readColor = exports.readSection = exports.readDataRLE = exports.readDataZip = exports.readAdditionalLayerInfo = exports.readGlobalLayerMaskInfo = exports.readLayerInfo = 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;
|
|
7672
|
+
exports.readPattern = exports.readColor = exports.readSection = exports.readDataRLE = exports.readDataZip = exports.readAdditionalLayerInfo = exports.readGlobalLayerMaskInfo = exports.readLayerInfo = exports.readPsd = exports.checkSignature = exports.skipBytes = exports.readAsciiString = exports.readUnicodeStringWithLengthLE = exports.readUnicodeStringWithLength = exports.readUnicodeString = exports.readPascalString = exports.validSignatureAt = 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;
|
|
7672
7673
|
var pako_1 = require("pako");
|
|
7673
7674
|
var helpers_1 = require("./helpers");
|
|
7674
7675
|
var additionalInfo_1 = require("./additionalInfo");
|
|
@@ -7684,14 +7685,14 @@ function setupGrayscale(data) {
|
|
|
7684
7685
|
}
|
|
7685
7686
|
function createReader(buffer, offset, length) {
|
|
7686
7687
|
var view = new DataView(buffer, offset, length);
|
|
7687
|
-
return { view: view, offset: 0, strict: false, debug: false };
|
|
7688
|
+
return { view: view, offset: 0, strict: false, debug: false, large: false, globalAlpha: false, log: console.log };
|
|
7688
7689
|
}
|
|
7689
7690
|
exports.createReader = createReader;
|
|
7690
7691
|
function warnOrThrow(reader, message) {
|
|
7691
7692
|
if (reader.strict)
|
|
7692
7693
|
throw new Error(message);
|
|
7693
7694
|
if (reader.debug)
|
|
7694
|
-
|
|
7695
|
+
reader.log(message);
|
|
7695
7696
|
}
|
|
7696
7697
|
exports.warnOrThrow = warnOrThrow;
|
|
7697
7698
|
function readUint8(reader) {
|
|
@@ -7776,6 +7777,14 @@ function readSignature(reader) {
|
|
|
7776
7777
|
return readShortString(reader, 4);
|
|
7777
7778
|
}
|
|
7778
7779
|
exports.readSignature = readSignature;
|
|
7780
|
+
function validSignatureAt(reader, offset) {
|
|
7781
|
+
var sig = String.fromCharCode(reader.view.getUint8(offset))
|
|
7782
|
+
+ String.fromCharCode(reader.view.getUint8(offset + 1))
|
|
7783
|
+
+ String.fromCharCode(reader.view.getUint8(offset + 2))
|
|
7784
|
+
+ String.fromCharCode(reader.view.getUint8(offset + 3));
|
|
7785
|
+
return sig == '8BIM' || sig == '8B64';
|
|
7786
|
+
}
|
|
7787
|
+
exports.validSignatureAt = validSignatureAt;
|
|
7779
7788
|
function readPascalString(reader, padTo) {
|
|
7780
7789
|
var length = readUint8(reader);
|
|
7781
7790
|
var text = length ? readShortString(reader, length) : '';
|
|
@@ -7867,7 +7876,9 @@ function readPsd(reader, readOptions) {
|
|
|
7867
7876
|
if (exports.supportedColorModes.indexOf(colorMode) === -1)
|
|
7868
7877
|
throw new Error("Color mode not supported: ".concat((_a = colorModes[colorMode]) !== null && _a !== void 0 ? _a : colorMode));
|
|
7869
7878
|
var psd = { width: width, height: height, channels: channels, bitsPerChannel: bitsPerChannel, colorMode: colorMode };
|
|
7870
|
-
|
|
7879
|
+
Object.assign(reader, readOptions);
|
|
7880
|
+
reader.large = version === 2;
|
|
7881
|
+
reader.globalAlpha = false;
|
|
7871
7882
|
var fixOffsets = [0, 1, -1, 2, -2, 3, -3, 4, -4];
|
|
7872
7883
|
// color mode data
|
|
7873
7884
|
readSection(reader, 1, function (left) {
|
|
@@ -7905,16 +7916,16 @@ function readPsd(reader, readOptions) {
|
|
|
7905
7916
|
readPascalString(reader, 2); // name
|
|
7906
7917
|
readSection(reader, 2, function (left) {
|
|
7907
7918
|
var handler = imageResources_1.resourceHandlersMap[id];
|
|
7908
|
-
var skip = id === 1036 && !!
|
|
7919
|
+
var skip = id === 1036 && !!reader.skipThumbnail;
|
|
7909
7920
|
if (!psd.imageResources) {
|
|
7910
7921
|
psd.imageResources = {};
|
|
7911
7922
|
}
|
|
7912
7923
|
if (handler && !skip) {
|
|
7913
7924
|
try {
|
|
7914
|
-
handler.read(reader, psd.imageResources, left
|
|
7925
|
+
handler.read(reader, psd.imageResources, left);
|
|
7915
7926
|
}
|
|
7916
7927
|
catch (e) {
|
|
7917
|
-
if (
|
|
7928
|
+
if (reader.throwForMissingFeatures)
|
|
7918
7929
|
throw e;
|
|
7919
7930
|
skipBytes(reader, left());
|
|
7920
7931
|
}
|
|
@@ -7932,9 +7943,9 @@ function readPsd(reader, readOptions) {
|
|
|
7932
7943
|
// layer and mask info
|
|
7933
7944
|
readSection(reader, 1, function (left) {
|
|
7934
7945
|
readSection(reader, 2, function (left) {
|
|
7935
|
-
readLayerInfo(reader, psd
|
|
7946
|
+
readLayerInfo(reader, psd);
|
|
7936
7947
|
skipBytes(reader, left());
|
|
7937
|
-
}, undefined,
|
|
7948
|
+
}, undefined, reader.large);
|
|
7938
7949
|
// SAI does not include this section
|
|
7939
7950
|
if (left() > 0) {
|
|
7940
7951
|
var globalLayerMaskInfo = readGlobalLayerMaskInfo(reader);
|
|
@@ -7953,18 +7964,18 @@ function readPsd(reader, readOptions) {
|
|
|
7953
7964
|
skipBytes(reader, 1);
|
|
7954
7965
|
}
|
|
7955
7966
|
if (left() >= 12) {
|
|
7956
|
-
readAdditionalLayerInfo(reader, psd, psd
|
|
7967
|
+
readAdditionalLayerInfo(reader, psd, psd);
|
|
7957
7968
|
}
|
|
7958
7969
|
else {
|
|
7959
7970
|
// opt.logMissingFeatures && console.log('skipping leftover bytes', left());
|
|
7960
7971
|
skipBytes(reader, left());
|
|
7961
7972
|
}
|
|
7962
7973
|
}
|
|
7963
|
-
}, undefined,
|
|
7974
|
+
}, undefined, reader.large);
|
|
7964
7975
|
var hasChildren = psd.children && psd.children.length;
|
|
7965
|
-
var skipComposite =
|
|
7976
|
+
var skipComposite = reader.skipCompositeImageData && (reader.skipLayerImageData || hasChildren);
|
|
7966
7977
|
if (!skipComposite) {
|
|
7967
|
-
readImageData(reader, psd
|
|
7978
|
+
readImageData(reader, psd);
|
|
7968
7979
|
}
|
|
7969
7980
|
// TODO: show converted color mode instead of original PSD file color mode
|
|
7970
7981
|
// but add option to preserve file color mode (need to return image data instead of canvas in that case)
|
|
@@ -7972,22 +7983,22 @@ function readPsd(reader, readOptions) {
|
|
|
7972
7983
|
return psd;
|
|
7973
7984
|
}
|
|
7974
7985
|
exports.readPsd = readPsd;
|
|
7975
|
-
function readLayerInfo(reader, psd
|
|
7986
|
+
function readLayerInfo(reader, psd) {
|
|
7976
7987
|
var layerCount = readInt16(reader);
|
|
7977
7988
|
if (layerCount < 0) {
|
|
7978
|
-
|
|
7989
|
+
reader.globalAlpha = true;
|
|
7979
7990
|
layerCount = -layerCount;
|
|
7980
7991
|
}
|
|
7981
7992
|
var layers = [];
|
|
7982
7993
|
var layerChannels = [];
|
|
7983
7994
|
for (var i = 0; i < layerCount; i++) {
|
|
7984
|
-
var _a = readLayerRecord(reader, psd
|
|
7995
|
+
var _a = readLayerRecord(reader, psd), layer = _a.layer, channels = _a.channels;
|
|
7985
7996
|
layers.push(layer);
|
|
7986
7997
|
layerChannels.push(channels);
|
|
7987
7998
|
}
|
|
7988
|
-
if (!
|
|
7999
|
+
if (!reader.skipLayerImageData) {
|
|
7989
8000
|
for (var i = 0; i < layerCount; i++) {
|
|
7990
|
-
readLayerChannelImageData(reader, psd, layers[i], layerChannels[i]
|
|
8001
|
+
readLayerChannelImageData(reader, psd, layers[i], layerChannels[i]);
|
|
7991
8002
|
}
|
|
7992
8003
|
}
|
|
7993
8004
|
if (!psd.children)
|
|
@@ -8015,7 +8026,7 @@ function readLayerInfo(reader, psd, options) {
|
|
|
8015
8026
|
}
|
|
8016
8027
|
}
|
|
8017
8028
|
exports.readLayerInfo = readLayerInfo;
|
|
8018
|
-
function readLayerRecord(reader, psd
|
|
8029
|
+
function readLayerRecord(reader, psd) {
|
|
8019
8030
|
var layer = {};
|
|
8020
8031
|
layer.top = readInt32(reader);
|
|
8021
8032
|
layer.left = readInt32(reader);
|
|
@@ -8026,7 +8037,7 @@ function readLayerRecord(reader, psd, options) {
|
|
|
8026
8037
|
for (var i = 0; i < channelCount; i++) {
|
|
8027
8038
|
var id = readInt16(reader);
|
|
8028
8039
|
var length_1 = readUint32(reader);
|
|
8029
|
-
if (
|
|
8040
|
+
if (reader.large) {
|
|
8030
8041
|
if (length_1 !== 0)
|
|
8031
8042
|
throw new Error('Sizes larger than 4GB are not supported');
|
|
8032
8043
|
length_1 = readUint32(reader);
|
|
@@ -8051,18 +8062,20 @@ function readLayerRecord(reader, psd, options) {
|
|
|
8051
8062
|
// 0x20 - effects/filters panel is expanded
|
|
8052
8063
|
skipBytes(reader, 1);
|
|
8053
8064
|
readSection(reader, 1, function (left) {
|
|
8054
|
-
var mask = readLayerMaskData(reader
|
|
8065
|
+
var mask = readLayerMaskData(reader);
|
|
8055
8066
|
if (mask)
|
|
8056
8067
|
layer.mask = mask;
|
|
8057
8068
|
/*const blendingRanges =*/ readLayerBlendingRanges(reader);
|
|
8058
|
-
layer.name = readPascalString(reader,
|
|
8059
|
-
|
|
8060
|
-
|
|
8061
|
-
|
|
8069
|
+
layer.name = readPascalString(reader, 1); // should be padded to 4, but is not sometimes
|
|
8070
|
+
// HACK: fix for sometimes layer.name string not being padded correctly, just skip until we get valid signature
|
|
8071
|
+
while (left() > 4 && !validSignatureAt(reader, reader.offset))
|
|
8072
|
+
reader.offset++;
|
|
8073
|
+
while (left() > 4)
|
|
8074
|
+
readAdditionalLayerInfo(reader, layer, psd);
|
|
8062
8075
|
});
|
|
8063
8076
|
return { layer: layer, channels: channels };
|
|
8064
8077
|
}
|
|
8065
|
-
function readLayerMaskData(reader
|
|
8078
|
+
function readLayerMaskData(reader) {
|
|
8066
8079
|
return readSection(reader, 1, function (left) {
|
|
8067
8080
|
if (!left())
|
|
8068
8081
|
return undefined;
|
|
@@ -8098,8 +8111,8 @@ function readLayerMaskData(reader, options) {
|
|
|
8098
8111
|
|
|
8099
8112
|
// TEMP
|
|
8100
8113
|
(mask as any)._real = { realFlags, realUserMaskBackground, top2, left2, bottom2, right2 };*/
|
|
8101
|
-
if (
|
|
8102
|
-
|
|
8114
|
+
if (reader.logMissingFeatures) {
|
|
8115
|
+
reader.log('Unhandled extra real user mask params');
|
|
8103
8116
|
}
|
|
8104
8117
|
}
|
|
8105
8118
|
skipBytes(reader, left());
|
|
@@ -8119,7 +8132,7 @@ function readLayerBlendingRanges(reader) {
|
|
|
8119
8132
|
return { compositeGrayBlendSource: compositeGrayBlendSource, compositeGraphBlendDestinationRange: compositeGraphBlendDestinationRange, ranges: ranges };
|
|
8120
8133
|
});
|
|
8121
8134
|
}
|
|
8122
|
-
function readLayerChannelImageData(reader, psd, layer, channels
|
|
8135
|
+
function readLayerChannelImageData(reader, psd, layer, channels) {
|
|
8123
8136
|
var _a, _b, _c, _d;
|
|
8124
8137
|
var layerWidth = (layer.right || 0) - (layer.left || 0);
|
|
8125
8138
|
var layerHeight = (layer.bottom || 0) - (layer.top || 0);
|
|
@@ -8170,12 +8183,12 @@ function readLayerChannelImageData(reader, psd, layer, channels, options) {
|
|
|
8170
8183
|
var maskData = createImageDataBitDepth(maskWidth, maskHeight, (_b = psd.bitsPerChannel) !== null && _b !== void 0 ? _b : 8);
|
|
8171
8184
|
(0, helpers_1.resetImageData)(maskData);
|
|
8172
8185
|
var start_1 = reader.offset;
|
|
8173
|
-
readData(reader, channel.length, maskData, compression, maskWidth, maskHeight, (_c = psd.bitsPerChannel) !== null && _c !== void 0 ? _c : 8, 0,
|
|
8186
|
+
readData(reader, channel.length, maskData, compression, maskWidth, maskHeight, (_c = psd.bitsPerChannel) !== null && _c !== void 0 ? _c : 8, 0, reader.large, 4);
|
|
8174
8187
|
if (helpers_1.RAW_IMAGE_DATA) {
|
|
8175
8188
|
layer.maskDataRaw = new Uint8Array(reader.view.buffer, reader.view.byteOffset + start_1, reader.offset - start_1);
|
|
8176
8189
|
}
|
|
8177
8190
|
setupGrayscale(maskData);
|
|
8178
|
-
if (
|
|
8191
|
+
if (reader.useImageData) {
|
|
8179
8192
|
mask.imageData = maskData;
|
|
8180
8193
|
}
|
|
8181
8194
|
else {
|
|
@@ -8184,8 +8197,8 @@ function readLayerChannelImageData(reader, psd, layer, channels, options) {
|
|
|
8184
8197
|
}
|
|
8185
8198
|
}
|
|
8186
8199
|
else if (channel.id === -3 /* ChannelID.RealUserMask */) {
|
|
8187
|
-
if (
|
|
8188
|
-
|
|
8200
|
+
if (reader.logMissingFeatures) {
|
|
8201
|
+
reader.log("RealUserMask not supported");
|
|
8189
8202
|
}
|
|
8190
8203
|
reader.offset = start + channel.length;
|
|
8191
8204
|
}
|
|
@@ -8194,11 +8207,11 @@ function readLayerChannelImageData(reader, psd, layer, channels, options) {
|
|
|
8194
8207
|
var targetData = imageData;
|
|
8195
8208
|
if (offset < 0) {
|
|
8196
8209
|
targetData = undefined;
|
|
8197
|
-
if (
|
|
8210
|
+
if (reader.throwForMissingFeatures) {
|
|
8198
8211
|
throw new Error("Channel not supported: ".concat(channel.id));
|
|
8199
8212
|
}
|
|
8200
8213
|
}
|
|
8201
|
-
readData(reader, channel.length, targetData, compression, layerWidth, layerHeight, (_d = psd.bitsPerChannel) !== null && _d !== void 0 ? _d : 8, offset,
|
|
8214
|
+
readData(reader, channel.length, targetData, compression, layerWidth, layerHeight, (_d = psd.bitsPerChannel) !== null && _d !== void 0 ? _d : 8, offset, reader.large, cmyk ? 5 : 4);
|
|
8202
8215
|
if (helpers_1.RAW_IMAGE_DATA) {
|
|
8203
8216
|
layer.imageDataRaw[channel.id] = new Uint8Array(reader.view.buffer, reader.view.byteOffset + start + 2, channel.length - 2);
|
|
8204
8217
|
}
|
|
@@ -8214,7 +8227,7 @@ function readLayerChannelImageData(reader, psd, layer, channels, options) {
|
|
|
8214
8227
|
imageData = (0, helpers_1.createImageData)(cmykData.width, cmykData.height);
|
|
8215
8228
|
cmykToRgb(cmykData, imageData, false);
|
|
8216
8229
|
}
|
|
8217
|
-
if (
|
|
8230
|
+
if (reader.useImageData) {
|
|
8218
8231
|
layer.imageData = imageData;
|
|
8219
8232
|
}
|
|
8220
8233
|
else {
|
|
@@ -8255,30 +8268,30 @@ function readGlobalLayerMaskInfo(reader) {
|
|
|
8255
8268
|
});
|
|
8256
8269
|
}
|
|
8257
8270
|
exports.readGlobalLayerMaskInfo = readGlobalLayerMaskInfo;
|
|
8258
|
-
function readAdditionalLayerInfo(reader, target, psd
|
|
8271
|
+
function readAdditionalLayerInfo(reader, target, psd) {
|
|
8259
8272
|
var sig = readSignature(reader);
|
|
8260
8273
|
if (sig !== '8BIM' && sig !== '8B64')
|
|
8261
8274
|
throw new Error("Invalid signature: '".concat(sig, "' at 0x").concat((reader.offset - 4).toString(16)));
|
|
8262
8275
|
var key = readSignature(reader);
|
|
8263
8276
|
// `largeAdditionalInfoKeys` fallback, because some keys don't have 8B64 signature even when they are 64bit
|
|
8264
|
-
var u64 = sig === '8B64' || (
|
|
8277
|
+
var u64 = sig === '8B64' || (reader.large && helpers_1.largeAdditionalInfoKeys.indexOf(key) !== -1);
|
|
8265
8278
|
readSection(reader, 2, function (left) {
|
|
8266
8279
|
var handler = additionalInfo_1.infoHandlersMap[key];
|
|
8267
8280
|
if (handler) {
|
|
8268
8281
|
try {
|
|
8269
|
-
handler.read(reader, target, left, psd
|
|
8282
|
+
handler.read(reader, target, left, psd);
|
|
8270
8283
|
}
|
|
8271
8284
|
catch (e) {
|
|
8272
|
-
if (
|
|
8285
|
+
if (reader.throwForMissingFeatures)
|
|
8273
8286
|
throw e;
|
|
8274
8287
|
}
|
|
8275
8288
|
}
|
|
8276
8289
|
else {
|
|
8277
|
-
|
|
8290
|
+
reader.logMissingFeatures && reader.log("Unhandled additional info: ".concat(key));
|
|
8278
8291
|
skipBytes(reader, left());
|
|
8279
8292
|
}
|
|
8280
8293
|
if (left()) {
|
|
8281
|
-
|
|
8294
|
+
reader.logMissingFeatures && reader.log("Unread ".concat(left(), " bytes left for additional info: ").concat(key));
|
|
8282
8295
|
skipBytes(reader, left());
|
|
8283
8296
|
}
|
|
8284
8297
|
}, false, u64);
|
|
@@ -8298,7 +8311,7 @@ function createImageDataBitDepth(width, height, bitDepth) {
|
|
|
8298
8311
|
throw new Error("Invalid bitDepth (".concat(bitDepth, ")"));
|
|
8299
8312
|
}
|
|
8300
8313
|
}
|
|
8301
|
-
function readImageData(reader, psd
|
|
8314
|
+
function readImageData(reader, psd) {
|
|
8302
8315
|
var _a, _b;
|
|
8303
8316
|
var compression = readUint16(reader);
|
|
8304
8317
|
var bitsPerChannel = (_a = psd.bitsPerChannel) !== null && _a !== void 0 ? _a : 8;
|
|
@@ -8318,7 +8331,7 @@ function readImageData(reader, psd, options) {
|
|
|
8318
8331
|
}
|
|
8319
8332
|
else if (compression === 1 /* Compression.RleCompressed */) {
|
|
8320
8333
|
bytes = new Uint8Array(psd.width * psd.height);
|
|
8321
|
-
readDataRLE(reader, { data: bytes, width: psd.width, height: psd.height }, psd.width, psd.height, 8, 1, [0],
|
|
8334
|
+
readDataRLE(reader, { data: bytes, width: psd.width, height: psd.height }, psd.width, psd.height, 8, 1, [0], reader.large);
|
|
8322
8335
|
}
|
|
8323
8336
|
else {
|
|
8324
8337
|
throw new Error("Bitmap compression not supported: ".concat(compression));
|
|
@@ -8335,7 +8348,7 @@ function readImageData(reader, psd, options) {
|
|
|
8335
8348
|
channels.push(i);
|
|
8336
8349
|
}
|
|
8337
8350
|
}
|
|
8338
|
-
else if (
|
|
8351
|
+
else if (reader.globalAlpha) {
|
|
8339
8352
|
channels.push(3);
|
|
8340
8353
|
}
|
|
8341
8354
|
if (compression === 0 /* Compression.RawData */) {
|
|
@@ -8345,7 +8358,7 @@ function readImageData(reader, psd, options) {
|
|
|
8345
8358
|
}
|
|
8346
8359
|
else if (compression === 1 /* Compression.RleCompressed */) {
|
|
8347
8360
|
var start = reader.offset;
|
|
8348
|
-
readDataRLE(reader, imageData, psd.width, psd.height, bitsPerChannel, 4, channels,
|
|
8361
|
+
readDataRLE(reader, imageData, psd.width, psd.height, bitsPerChannel, 4, channels, reader.large);
|
|
8349
8362
|
if (helpers_1.RAW_IMAGE_DATA)
|
|
8350
8363
|
psd.imageDataRaw = new Uint8Array(reader.view.buffer, reader.view.byteOffset + start, reader.offset - start);
|
|
8351
8364
|
}
|
|
@@ -8360,7 +8373,7 @@ function readImageData(reader, psd, options) {
|
|
|
8360
8373
|
if (psd.channels !== 4)
|
|
8361
8374
|
throw new Error("Invalid channel count");
|
|
8362
8375
|
var channels = [0, 1, 2, 3];
|
|
8363
|
-
if (
|
|
8376
|
+
if (reader.globalAlpha)
|
|
8364
8377
|
channels.push(4);
|
|
8365
8378
|
if (compression === 0 /* Compression.RawData */) {
|
|
8366
8379
|
throw new Error("Not implemented");
|
|
@@ -8376,7 +8389,7 @@ function readImageData(reader, psd, options) {
|
|
|
8376
8389
|
data: new Uint8Array(imageData.width * imageData.height * 5),
|
|
8377
8390
|
};
|
|
8378
8391
|
var start = reader.offset;
|
|
8379
|
-
readDataRLE(reader, cmykImageData, psd.width, psd.height, (_b = psd.bitsPerChannel) !== null && _b !== void 0 ? _b : 8, 5, channels,
|
|
8392
|
+
readDataRLE(reader, cmykImageData, psd.width, psd.height, (_b = psd.bitsPerChannel) !== null && _b !== void 0 ? _b : 8, 5, channels, reader.large);
|
|
8380
8393
|
cmykToRgb(cmykImageData, imageData, true);
|
|
8381
8394
|
if (helpers_1.RAW_IMAGE_DATA)
|
|
8382
8395
|
psd.imageDataRaw = new Uint8Array(reader.view.buffer, reader.view.byteOffset + start, reader.offset - start);
|
|
@@ -8386,7 +8399,7 @@ function readImageData(reader, psd, options) {
|
|
|
8386
8399
|
default: throw new Error("Color mode not supported: ".concat(psd.colorMode));
|
|
8387
8400
|
}
|
|
8388
8401
|
// remove weird white matte
|
|
8389
|
-
if (
|
|
8402
|
+
if (reader.globalAlpha) {
|
|
8390
8403
|
if (psd.bitsPerChannel !== 8)
|
|
8391
8404
|
throw new Error('bitsPerChannel Not supproted');
|
|
8392
8405
|
var p = imageData.data;
|
|
@@ -8403,7 +8416,7 @@ function readImageData(reader, psd, options) {
|
|
|
8403
8416
|
}
|
|
8404
8417
|
}
|
|
8405
8418
|
}
|
|
8406
|
-
if (
|
|
8419
|
+
if (reader.useImageData) {
|
|
8407
8420
|
psd.imageData = imageData;
|
|
8408
8421
|
}
|
|
8409
8422
|
else {
|
|
@@ -8769,7 +8782,7 @@ function readPattern(reader) {
|
|
|
8769
8782
|
// console.log(data);
|
|
8770
8783
|
// throw new Error('Zip compression not supported for pattern');
|
|
8771
8784
|
// throw new Error('Unsupported pattern compression');
|
|
8772
|
-
|
|
8785
|
+
reader.log('Unsupported pattern compression');
|
|
8773
8786
|
name += ' (failed to decode)';
|
|
8774
8787
|
}
|
|
8775
8788
|
else {
|
package/dist/descriptor.js
CHANGED
|
@@ -1802,6 +1802,7 @@ exports.gradientInterpolationMethodType = (0, helpers_1.createEnum)('gradientInt
|
|
|
1802
1802
|
perceptual: 'Perc',
|
|
1803
1803
|
linear: 'Lnr',
|
|
1804
1804
|
classic: 'Gcls',
|
|
1805
|
+
smooth: 'Smoo',
|
|
1805
1806
|
});
|
|
1806
1807
|
exports.ClrS = (0, helpers_1.createEnum)('ClrS', 'rgb', {
|
|
1807
1808
|
rgb: 'RGBC',
|