ag-psd 21.0.2 → 22.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 +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 +125 -108
- package/dist/descriptor.js +1 -0
- package/dist/descriptor.js.map +1 -1
- package/dist/imageResources.d.ts +2 -2
- package/dist/imageResources.js +25 -27
- package/dist/imageResources.js.map +1 -1
- package/dist/psd.d.ts +7 -1
- package/dist/psdReader.d.ts +7 -9
- package/dist/psdReader.js +67 -62
- package/dist/psdReader.js.map +1 -1
- package/dist/psdWriter.js +2 -2
- package/dist/psdWriter.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 +25 -27
- package/dist-es/imageResources.js.map +1 -1
- package/dist-es/psd.d.ts +7 -1
- package/dist-es/psdReader.d.ts +7 -9
- package/dist-es/psdReader.js +65 -61
- package/dist-es/psdReader.js.map +1 -1
- package/dist-es/psdWriter.js +2 -2
- package/dist-es/psdWriter.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 +28 -28
- package/src/psd.ts +9 -2
- package/src/psdReader.ts +72 -58
- package/src/psdWriter.ts +2 -1
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) {
|
|
@@ -7345,22 +7359,22 @@ addHandler(1036, function (target) { return target.thumbnail !== undefined || ta
|
|
|
7345
7359
|
var _a;
|
|
7346
7360
|
var width = 0;
|
|
7347
7361
|
var height = 0;
|
|
7348
|
-
var data;
|
|
7362
|
+
var data = new Uint8Array(0);
|
|
7349
7363
|
if (target.thumbnailRaw) {
|
|
7350
7364
|
width = target.thumbnailRaw.width;
|
|
7351
7365
|
height = target.thumbnailRaw.height;
|
|
7352
7366
|
data = target.thumbnailRaw.data;
|
|
7353
7367
|
}
|
|
7354
7368
|
else {
|
|
7355
|
-
|
|
7356
|
-
|
|
7357
|
-
|
|
7358
|
-
|
|
7359
|
-
|
|
7360
|
-
|
|
7361
|
-
|
|
7362
|
-
data = new Uint8Array(0);
|
|
7369
|
+
try {
|
|
7370
|
+
var dataUrl = (_a = target.thumbnail.toDataURL('image/jpeg', 1)) === null || _a === void 0 ? void 0 : _a.substring('data:image/jpeg;base64,'.length);
|
|
7371
|
+
if (dataUrl) {
|
|
7372
|
+
data = (0, base64_js_1.toByteArray)(dataUrl); // this sometimes fails for some reason, maybe some browser bugs
|
|
7373
|
+
width = target.thumbnail.width;
|
|
7374
|
+
height = target.thumbnail.height;
|
|
7375
|
+
}
|
|
7363
7376
|
}
|
|
7377
|
+
catch (_b) { }
|
|
7364
7378
|
}
|
|
7365
7379
|
var bitsPerPixel = 24;
|
|
7366
7380
|
var widthBytes = Math.floor((width * bitsPerPixel + 31) / 32) * 4;
|
|
@@ -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,23 @@ 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) {
|
|
7987
|
+
var _a, _b;
|
|
7976
7988
|
var layerCount = readInt16(reader);
|
|
7977
7989
|
if (layerCount < 0) {
|
|
7978
|
-
|
|
7990
|
+
reader.globalAlpha = true;
|
|
7979
7991
|
layerCount = -layerCount;
|
|
7980
7992
|
}
|
|
7981
7993
|
var layers = [];
|
|
7982
7994
|
var layerChannels = [];
|
|
7983
7995
|
for (var i = 0; i < layerCount; i++) {
|
|
7984
|
-
var
|
|
7996
|
+
var _c = readLayerRecord(reader, psd), layer = _c.layer, channels = _c.channels;
|
|
7985
7997
|
layers.push(layer);
|
|
7986
7998
|
layerChannels.push(channels);
|
|
7987
7999
|
}
|
|
7988
|
-
if (!
|
|
8000
|
+
if (!reader.skipLayerImageData) {
|
|
7989
8001
|
for (var i = 0; i < layerCount; i++) {
|
|
7990
|
-
readLayerChannelImageData(reader, psd, layers[i], layerChannels[i]
|
|
8002
|
+
readLayerChannelImageData(reader, psd, layers[i], layerChannels[i]);
|
|
7991
8003
|
}
|
|
7992
8004
|
}
|
|
7993
8005
|
if (!psd.children)
|
|
@@ -7999,6 +8011,9 @@ function readLayerInfo(reader, psd, options) {
|
|
|
7999
8011
|
if (type === 1 /* SectionDividerType.OpenFolder */ || type === 2 /* SectionDividerType.ClosedFolder */) {
|
|
8000
8012
|
l.opened = type === 1 /* SectionDividerType.OpenFolder */;
|
|
8001
8013
|
l.children = [];
|
|
8014
|
+
if ((_a = l.sectionDivider) === null || _a === void 0 ? void 0 : _a.key) {
|
|
8015
|
+
l.blendMode = (_b = helpers_1.toBlendMode[l.sectionDivider.key]) !== null && _b !== void 0 ? _b : l.blendMode;
|
|
8016
|
+
}
|
|
8002
8017
|
stack[stack.length - 1].children.unshift(l);
|
|
8003
8018
|
stack.push(l);
|
|
8004
8019
|
}
|
|
@@ -8015,7 +8030,7 @@ function readLayerInfo(reader, psd, options) {
|
|
|
8015
8030
|
}
|
|
8016
8031
|
}
|
|
8017
8032
|
exports.readLayerInfo = readLayerInfo;
|
|
8018
|
-
function readLayerRecord(reader, psd
|
|
8033
|
+
function readLayerRecord(reader, psd) {
|
|
8019
8034
|
var layer = {};
|
|
8020
8035
|
layer.top = readInt32(reader);
|
|
8021
8036
|
layer.left = readInt32(reader);
|
|
@@ -8026,7 +8041,7 @@ function readLayerRecord(reader, psd, options) {
|
|
|
8026
8041
|
for (var i = 0; i < channelCount; i++) {
|
|
8027
8042
|
var id = readInt16(reader);
|
|
8028
8043
|
var length_1 = readUint32(reader);
|
|
8029
|
-
if (
|
|
8044
|
+
if (reader.large) {
|
|
8030
8045
|
if (length_1 !== 0)
|
|
8031
8046
|
throw new Error('Sizes larger than 4GB are not supported');
|
|
8032
8047
|
length_1 = readUint32(reader);
|
|
@@ -8051,18 +8066,20 @@ function readLayerRecord(reader, psd, options) {
|
|
|
8051
8066
|
// 0x20 - effects/filters panel is expanded
|
|
8052
8067
|
skipBytes(reader, 1);
|
|
8053
8068
|
readSection(reader, 1, function (left) {
|
|
8054
|
-
var mask = readLayerMaskData(reader
|
|
8069
|
+
var mask = readLayerMaskData(reader);
|
|
8055
8070
|
if (mask)
|
|
8056
8071
|
layer.mask = mask;
|
|
8057
8072
|
/*const blendingRanges =*/ readLayerBlendingRanges(reader);
|
|
8058
|
-
layer.name = readPascalString(reader,
|
|
8059
|
-
|
|
8060
|
-
|
|
8061
|
-
|
|
8073
|
+
layer.name = readPascalString(reader, 1); // should be padded to 4, but is not sometimes
|
|
8074
|
+
// HACK: fix for sometimes layer.name string not being padded correctly, just skip until we get valid signature
|
|
8075
|
+
while (left() > 4 && !validSignatureAt(reader, reader.offset))
|
|
8076
|
+
reader.offset++;
|
|
8077
|
+
while (left() > 4)
|
|
8078
|
+
readAdditionalLayerInfo(reader, layer, psd);
|
|
8062
8079
|
});
|
|
8063
8080
|
return { layer: layer, channels: channels };
|
|
8064
8081
|
}
|
|
8065
|
-
function readLayerMaskData(reader
|
|
8082
|
+
function readLayerMaskData(reader) {
|
|
8066
8083
|
return readSection(reader, 1, function (left) {
|
|
8067
8084
|
if (!left())
|
|
8068
8085
|
return undefined;
|
|
@@ -8098,8 +8115,8 @@ function readLayerMaskData(reader, options) {
|
|
|
8098
8115
|
|
|
8099
8116
|
// TEMP
|
|
8100
8117
|
(mask as any)._real = { realFlags, realUserMaskBackground, top2, left2, bottom2, right2 };*/
|
|
8101
|
-
if (
|
|
8102
|
-
|
|
8118
|
+
if (reader.logMissingFeatures) {
|
|
8119
|
+
reader.log('Unhandled extra real user mask params');
|
|
8103
8120
|
}
|
|
8104
8121
|
}
|
|
8105
8122
|
skipBytes(reader, left());
|
|
@@ -8119,7 +8136,7 @@ function readLayerBlendingRanges(reader) {
|
|
|
8119
8136
|
return { compositeGrayBlendSource: compositeGrayBlendSource, compositeGraphBlendDestinationRange: compositeGraphBlendDestinationRange, ranges: ranges };
|
|
8120
8137
|
});
|
|
8121
8138
|
}
|
|
8122
|
-
function readLayerChannelImageData(reader, psd, layer, channels
|
|
8139
|
+
function readLayerChannelImageData(reader, psd, layer, channels) {
|
|
8123
8140
|
var _a, _b, _c, _d;
|
|
8124
8141
|
var layerWidth = (layer.right || 0) - (layer.left || 0);
|
|
8125
8142
|
var layerHeight = (layer.bottom || 0) - (layer.top || 0);
|
|
@@ -8170,12 +8187,12 @@ function readLayerChannelImageData(reader, psd, layer, channels, options) {
|
|
|
8170
8187
|
var maskData = createImageDataBitDepth(maskWidth, maskHeight, (_b = psd.bitsPerChannel) !== null && _b !== void 0 ? _b : 8);
|
|
8171
8188
|
(0, helpers_1.resetImageData)(maskData);
|
|
8172
8189
|
var start_1 = reader.offset;
|
|
8173
|
-
readData(reader, channel.length, maskData, compression, maskWidth, maskHeight, (_c = psd.bitsPerChannel) !== null && _c !== void 0 ? _c : 8, 0,
|
|
8190
|
+
readData(reader, channel.length, maskData, compression, maskWidth, maskHeight, (_c = psd.bitsPerChannel) !== null && _c !== void 0 ? _c : 8, 0, reader.large, 4);
|
|
8174
8191
|
if (helpers_1.RAW_IMAGE_DATA) {
|
|
8175
8192
|
layer.maskDataRaw = new Uint8Array(reader.view.buffer, reader.view.byteOffset + start_1, reader.offset - start_1);
|
|
8176
8193
|
}
|
|
8177
8194
|
setupGrayscale(maskData);
|
|
8178
|
-
if (
|
|
8195
|
+
if (reader.useImageData) {
|
|
8179
8196
|
mask.imageData = maskData;
|
|
8180
8197
|
}
|
|
8181
8198
|
else {
|
|
@@ -8184,8 +8201,8 @@ function readLayerChannelImageData(reader, psd, layer, channels, options) {
|
|
|
8184
8201
|
}
|
|
8185
8202
|
}
|
|
8186
8203
|
else if (channel.id === -3 /* ChannelID.RealUserMask */) {
|
|
8187
|
-
if (
|
|
8188
|
-
|
|
8204
|
+
if (reader.logMissingFeatures) {
|
|
8205
|
+
reader.log("RealUserMask not supported");
|
|
8189
8206
|
}
|
|
8190
8207
|
reader.offset = start + channel.length;
|
|
8191
8208
|
}
|
|
@@ -8194,11 +8211,11 @@ function readLayerChannelImageData(reader, psd, layer, channels, options) {
|
|
|
8194
8211
|
var targetData = imageData;
|
|
8195
8212
|
if (offset < 0) {
|
|
8196
8213
|
targetData = undefined;
|
|
8197
|
-
if (
|
|
8214
|
+
if (reader.throwForMissingFeatures) {
|
|
8198
8215
|
throw new Error("Channel not supported: ".concat(channel.id));
|
|
8199
8216
|
}
|
|
8200
8217
|
}
|
|
8201
|
-
readData(reader, channel.length, targetData, compression, layerWidth, layerHeight, (_d = psd.bitsPerChannel) !== null && _d !== void 0 ? _d : 8, offset,
|
|
8218
|
+
readData(reader, channel.length, targetData, compression, layerWidth, layerHeight, (_d = psd.bitsPerChannel) !== null && _d !== void 0 ? _d : 8, offset, reader.large, cmyk ? 5 : 4);
|
|
8202
8219
|
if (helpers_1.RAW_IMAGE_DATA) {
|
|
8203
8220
|
layer.imageDataRaw[channel.id] = new Uint8Array(reader.view.buffer, reader.view.byteOffset + start + 2, channel.length - 2);
|
|
8204
8221
|
}
|
|
@@ -8214,7 +8231,7 @@ function readLayerChannelImageData(reader, psd, layer, channels, options) {
|
|
|
8214
8231
|
imageData = (0, helpers_1.createImageData)(cmykData.width, cmykData.height);
|
|
8215
8232
|
cmykToRgb(cmykData, imageData, false);
|
|
8216
8233
|
}
|
|
8217
|
-
if (
|
|
8234
|
+
if (reader.useImageData) {
|
|
8218
8235
|
layer.imageData = imageData;
|
|
8219
8236
|
}
|
|
8220
8237
|
else {
|
|
@@ -8255,30 +8272,30 @@ function readGlobalLayerMaskInfo(reader) {
|
|
|
8255
8272
|
});
|
|
8256
8273
|
}
|
|
8257
8274
|
exports.readGlobalLayerMaskInfo = readGlobalLayerMaskInfo;
|
|
8258
|
-
function readAdditionalLayerInfo(reader, target, psd
|
|
8275
|
+
function readAdditionalLayerInfo(reader, target, psd) {
|
|
8259
8276
|
var sig = readSignature(reader);
|
|
8260
8277
|
if (sig !== '8BIM' && sig !== '8B64')
|
|
8261
8278
|
throw new Error("Invalid signature: '".concat(sig, "' at 0x").concat((reader.offset - 4).toString(16)));
|
|
8262
8279
|
var key = readSignature(reader);
|
|
8263
8280
|
// `largeAdditionalInfoKeys` fallback, because some keys don't have 8B64 signature even when they are 64bit
|
|
8264
|
-
var u64 = sig === '8B64' || (
|
|
8281
|
+
var u64 = sig === '8B64' || (reader.large && helpers_1.largeAdditionalInfoKeys.indexOf(key) !== -1);
|
|
8265
8282
|
readSection(reader, 2, function (left) {
|
|
8266
8283
|
var handler = additionalInfo_1.infoHandlersMap[key];
|
|
8267
8284
|
if (handler) {
|
|
8268
8285
|
try {
|
|
8269
|
-
handler.read(reader, target, left, psd
|
|
8286
|
+
handler.read(reader, target, left, psd);
|
|
8270
8287
|
}
|
|
8271
8288
|
catch (e) {
|
|
8272
|
-
if (
|
|
8289
|
+
if (reader.throwForMissingFeatures)
|
|
8273
8290
|
throw e;
|
|
8274
8291
|
}
|
|
8275
8292
|
}
|
|
8276
8293
|
else {
|
|
8277
|
-
|
|
8294
|
+
reader.logMissingFeatures && reader.log("Unhandled additional info: ".concat(key));
|
|
8278
8295
|
skipBytes(reader, left());
|
|
8279
8296
|
}
|
|
8280
8297
|
if (left()) {
|
|
8281
|
-
|
|
8298
|
+
reader.logMissingFeatures && reader.log("Unread ".concat(left(), " bytes left for additional info: ").concat(key));
|
|
8282
8299
|
skipBytes(reader, left());
|
|
8283
8300
|
}
|
|
8284
8301
|
}, false, u64);
|
|
@@ -8298,7 +8315,7 @@ function createImageDataBitDepth(width, height, bitDepth) {
|
|
|
8298
8315
|
throw new Error("Invalid bitDepth (".concat(bitDepth, ")"));
|
|
8299
8316
|
}
|
|
8300
8317
|
}
|
|
8301
|
-
function readImageData(reader, psd
|
|
8318
|
+
function readImageData(reader, psd) {
|
|
8302
8319
|
var _a, _b;
|
|
8303
8320
|
var compression = readUint16(reader);
|
|
8304
8321
|
var bitsPerChannel = (_a = psd.bitsPerChannel) !== null && _a !== void 0 ? _a : 8;
|
|
@@ -8318,7 +8335,7 @@ function readImageData(reader, psd, options) {
|
|
|
8318
8335
|
}
|
|
8319
8336
|
else if (compression === 1 /* Compression.RleCompressed */) {
|
|
8320
8337
|
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],
|
|
8338
|
+
readDataRLE(reader, { data: bytes, width: psd.width, height: psd.height }, psd.width, psd.height, 8, 1, [0], reader.large);
|
|
8322
8339
|
}
|
|
8323
8340
|
else {
|
|
8324
8341
|
throw new Error("Bitmap compression not supported: ".concat(compression));
|
|
@@ -8335,7 +8352,7 @@ function readImageData(reader, psd, options) {
|
|
|
8335
8352
|
channels.push(i);
|
|
8336
8353
|
}
|
|
8337
8354
|
}
|
|
8338
|
-
else if (
|
|
8355
|
+
else if (reader.globalAlpha) {
|
|
8339
8356
|
channels.push(3);
|
|
8340
8357
|
}
|
|
8341
8358
|
if (compression === 0 /* Compression.RawData */) {
|
|
@@ -8345,7 +8362,7 @@ function readImageData(reader, psd, options) {
|
|
|
8345
8362
|
}
|
|
8346
8363
|
else if (compression === 1 /* Compression.RleCompressed */) {
|
|
8347
8364
|
var start = reader.offset;
|
|
8348
|
-
readDataRLE(reader, imageData, psd.width, psd.height, bitsPerChannel, 4, channels,
|
|
8365
|
+
readDataRLE(reader, imageData, psd.width, psd.height, bitsPerChannel, 4, channels, reader.large);
|
|
8349
8366
|
if (helpers_1.RAW_IMAGE_DATA)
|
|
8350
8367
|
psd.imageDataRaw = new Uint8Array(reader.view.buffer, reader.view.byteOffset + start, reader.offset - start);
|
|
8351
8368
|
}
|
|
@@ -8360,7 +8377,7 @@ function readImageData(reader, psd, options) {
|
|
|
8360
8377
|
if (psd.channels !== 4)
|
|
8361
8378
|
throw new Error("Invalid channel count");
|
|
8362
8379
|
var channels = [0, 1, 2, 3];
|
|
8363
|
-
if (
|
|
8380
|
+
if (reader.globalAlpha)
|
|
8364
8381
|
channels.push(4);
|
|
8365
8382
|
if (compression === 0 /* Compression.RawData */) {
|
|
8366
8383
|
throw new Error("Not implemented");
|
|
@@ -8376,7 +8393,7 @@ function readImageData(reader, psd, options) {
|
|
|
8376
8393
|
data: new Uint8Array(imageData.width * imageData.height * 5),
|
|
8377
8394
|
};
|
|
8378
8395
|
var start = reader.offset;
|
|
8379
|
-
readDataRLE(reader, cmykImageData, psd.width, psd.height, (_b = psd.bitsPerChannel) !== null && _b !== void 0 ? _b : 8, 5, channels,
|
|
8396
|
+
readDataRLE(reader, cmykImageData, psd.width, psd.height, (_b = psd.bitsPerChannel) !== null && _b !== void 0 ? _b : 8, 5, channels, reader.large);
|
|
8380
8397
|
cmykToRgb(cmykImageData, imageData, true);
|
|
8381
8398
|
if (helpers_1.RAW_IMAGE_DATA)
|
|
8382
8399
|
psd.imageDataRaw = new Uint8Array(reader.view.buffer, reader.view.byteOffset + start, reader.offset - start);
|
|
@@ -8386,7 +8403,7 @@ function readImageData(reader, psd, options) {
|
|
|
8386
8403
|
default: throw new Error("Color mode not supported: ".concat(psd.colorMode));
|
|
8387
8404
|
}
|
|
8388
8405
|
// remove weird white matte
|
|
8389
|
-
if (
|
|
8406
|
+
if (reader.globalAlpha) {
|
|
8390
8407
|
if (psd.bitsPerChannel !== 8)
|
|
8391
8408
|
throw new Error('bitsPerChannel Not supproted');
|
|
8392
8409
|
var p = imageData.data;
|
|
@@ -8403,7 +8420,7 @@ function readImageData(reader, psd, options) {
|
|
|
8403
8420
|
}
|
|
8404
8421
|
}
|
|
8405
8422
|
}
|
|
8406
|
-
if (
|
|
8423
|
+
if (reader.useImageData) {
|
|
8407
8424
|
psd.imageData = imageData;
|
|
8408
8425
|
}
|
|
8409
8426
|
else {
|
|
@@ -8769,7 +8786,7 @@ function readPattern(reader) {
|
|
|
8769
8786
|
// console.log(data);
|
|
8770
8787
|
// throw new Error('Zip compression not supported for pattern');
|
|
8771
8788
|
// throw new Error('Unsupported pattern compression');
|
|
8772
|
-
|
|
8789
|
+
reader.log('Unsupported pattern compression');
|
|
8773
8790
|
name += ' (failed to decode)';
|
|
8774
8791
|
}
|
|
8775
8792
|
else {
|
|
@@ -9263,11 +9280,11 @@ function addChildren(layers, children) {
|
|
|
9263
9280
|
// referencePoint: { x: 0, y: 0 },
|
|
9264
9281
|
});
|
|
9265
9282
|
addChildren(layers, c.children);
|
|
9266
|
-
layers.push(__assign({ sectionDivider: {
|
|
9283
|
+
layers.push(__assign(__assign({}, c), { blendMode: c.blendMode === 'pass through' ? 'normal' : c.blendMode, sectionDivider: {
|
|
9267
9284
|
type: c.opened === false ? 2 /* SectionDividerType.ClosedFolder */ : 1 /* SectionDividerType.OpenFolder */,
|
|
9268
9285
|
key: helpers_1.fromBlendMode[c.blendMode] || 'pass',
|
|
9269
9286
|
subType: 0,
|
|
9270
|
-
} }
|
|
9287
|
+
} }));
|
|
9271
9288
|
}
|
|
9272
9289
|
else {
|
|
9273
9290
|
layers.push(__assign({}, c));
|