ag-psd 20.1.0 → 20.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/additionalInfo.js.map +1 -1
- package/dist/bundle.js +7477 -14819
- package/dist/helpers.js +2 -2
- package/dist/helpers.js.map +1 -1
- package/dist/imageResources.js +5 -5
- package/dist/imageResources.js.map +1 -1
- package/dist/initializeCanvas.js.map +1 -1
- package/dist/psdReader.js +6 -6
- package/dist/psdReader.js.map +1 -1
- package/dist-es/additionalInfo.js.map +1 -1
- package/dist-es/helpers.js +1 -1
- package/dist-es/helpers.js.map +1 -1
- package/dist-es/imageResources.js +5 -5
- package/dist-es/imageResources.js.map +1 -1
- package/dist-es/initializeCanvas.js.map +1 -1
- package/dist-es/psdReader.js +5 -5
- package/dist-es/psdReader.js.map +1 -1
- package/package.json +3 -2
- package/perf.js +12 -0
- package/src/additionalInfo.ts +1 -0
- package/src/helpers.ts +1 -1
- package/src/imageResources.ts +5 -5
- package/src/initializeCanvas.ts +3 -3
- package/src/psdReader.ts +5 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ag-psd",
|
|
3
|
-
"version": "20.1.
|
|
3
|
+
"version": "20.1.2",
|
|
4
4
|
"description": "Library for reading and writing PSD files",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist-es/index.js",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/mocha": "^10.0.6",
|
|
38
38
|
"@types/node": "^18.11.18",
|
|
39
|
+
"@types/pako": "^2.0.3",
|
|
39
40
|
"browserify": "^17.0.0",
|
|
40
41
|
"canvas": "^2.11.0",
|
|
41
42
|
"chai": "^4.3.7",
|
|
@@ -47,6 +48,6 @@
|
|
|
47
48
|
"dependencies": {
|
|
48
49
|
"@types/base64-js": "^1.3.0",
|
|
49
50
|
"base64-js": "^1.5.1",
|
|
50
|
-
"
|
|
51
|
+
"pako": "^2.1.0"
|
|
51
52
|
}
|
|
52
53
|
}
|
package/perf.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require('ts-node').register({});
|
|
2
|
+
const { readPsd } = require('./src/index.ts');
|
|
3
|
+
require('./src/initializeCanvas.ts');
|
|
4
|
+
const { readFileSync } = require('fs');
|
|
5
|
+
|
|
6
|
+
const buffer = readFileSync('D:\\Downloads\\8K Painting.psd');
|
|
7
|
+
|
|
8
|
+
const start = performance.now();
|
|
9
|
+
const psd = readPsd(buffer);
|
|
10
|
+
const end = performance.now();
|
|
11
|
+
|
|
12
|
+
console.log('time', end - start, 'ms', psd.width, psd.height);
|
package/src/additionalInfo.ts
CHANGED
|
@@ -3596,6 +3596,7 @@ addHandler(
|
|
|
3596
3596
|
const version = readInt32(reader);
|
|
3597
3597
|
const id = readPascalString(reader, 1);
|
|
3598
3598
|
const name = readUnicodeString(reader);
|
|
3599
|
+
|
|
3599
3600
|
const fileType = readSignature(reader).trim(); // ' ' if empty
|
|
3600
3601
|
const fileCreator = readSignature(reader).trim(); // ' ' or '\0\0\0\0' if empty
|
|
3601
3602
|
const dataSize = readLength64(reader);
|
package/src/helpers.ts
CHANGED
package/src/imageResources.ts
CHANGED
|
@@ -275,7 +275,7 @@ addHandler(
|
|
|
275
275
|
(reader, target, left) => {
|
|
276
276
|
target.alphaChannelNames = [];
|
|
277
277
|
|
|
278
|
-
while (left()) {
|
|
278
|
+
while (left() > 0) {
|
|
279
279
|
const value = readPascalString(reader, 1);
|
|
280
280
|
target.alphaChannelNames.push(value);
|
|
281
281
|
}
|
|
@@ -293,7 +293,7 @@ addHandler(
|
|
|
293
293
|
(reader, target, left) => {
|
|
294
294
|
target.alphaChannelNames = [];
|
|
295
295
|
|
|
296
|
-
while (left()) {
|
|
296
|
+
while (left() > 0) {
|
|
297
297
|
target.alphaChannelNames.push(readUnicodeString(reader));
|
|
298
298
|
}
|
|
299
299
|
},
|
|
@@ -482,7 +482,7 @@ addHandler(
|
|
|
482
482
|
(reader, target, left) => {
|
|
483
483
|
target.layersGroup = [];
|
|
484
484
|
|
|
485
|
-
while (left()) {
|
|
485
|
+
while (left() > 0) {
|
|
486
486
|
target.layersGroup.push(readUint16(reader));
|
|
487
487
|
}
|
|
488
488
|
},
|
|
@@ -499,7 +499,7 @@ addHandler(
|
|
|
499
499
|
(reader, target, left) => {
|
|
500
500
|
target.layerGroupsEnabledId = [];
|
|
501
501
|
|
|
502
|
-
while (left()) {
|
|
502
|
+
while (left() > 0) {
|
|
503
503
|
target.layerGroupsEnabledId.push(readUint8(reader));
|
|
504
504
|
}
|
|
505
505
|
},
|
|
@@ -1368,7 +1368,7 @@ addHandler(
|
|
|
1368
1368
|
if (key === 'mani') {
|
|
1369
1369
|
checkSignature(reader, 'IRFR');
|
|
1370
1370
|
readSection(reader, 1, left => {
|
|
1371
|
-
while (left()) {
|
|
1371
|
+
while (left() > 0) {
|
|
1372
1372
|
checkSignature(reader, '8BIM');
|
|
1373
1373
|
const key = readSignature(reader);
|
|
1374
1374
|
|
package/src/initializeCanvas.ts
CHANGED
|
@@ -7,7 +7,7 @@ function createCanvasFromData(data: Uint8Array) {
|
|
|
7
7
|
|
|
8
8
|
try {
|
|
9
9
|
const context = canvas.getContext('2d')!;
|
|
10
|
-
const imageData = decodeJpeg(data, (w, h) => context.createImageData(w, h));
|
|
10
|
+
const imageData = decodeJpeg(data, (w, h) => context.createImageData(w, h) as any);
|
|
11
11
|
canvas.width = imageData.width;
|
|
12
12
|
canvas.height = imageData.height;
|
|
13
13
|
context.putImageData(imageData, 0, 0);
|
|
@@ -18,8 +18,8 @@ function createCanvasFromData(data: Uint8Array) {
|
|
|
18
18
|
return canvas;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
initializeCanvas(createCanvas, createCanvasFromData);
|
|
21
|
+
initializeCanvas(createCanvas as any, createCanvasFromData as any);
|
|
22
22
|
|
|
23
23
|
export function initialize() {
|
|
24
|
-
initializeCanvas(createCanvas, createCanvasFromData);
|
|
24
|
+
initializeCanvas(createCanvas as any, createCanvasFromData as any);
|
|
25
25
|
}
|
package/src/psdReader.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { inflateSync } from '
|
|
1
|
+
import { inflate as inflateSync } from 'pako';
|
|
2
2
|
import { Psd, Layer, ColorMode, SectionDividerType, LayerAdditionalInfo, ReadOptions, LayerMaskData, Color, PatternInfo, GlobalLayerMaskInfo, RGB, PixelData, PixelArray } from './psd';
|
|
3
3
|
import { resetImageData, offsetForChannel, decodeBitmap, createImageData, toBlendMode, ChannelID, Compression, LayerMaskFlags, MaskParams, ColorSpace, RAW_IMAGE_DATA, largeAdditionalInfoKeys, imageDataToCanvas } from './helpers';
|
|
4
4
|
import { infoHandlersMap } from './additionalInfo';
|
|
@@ -234,7 +234,7 @@ export function readPsd(reader: PsdReader, readOptions: ReadOptions = {}) {
|
|
|
234
234
|
|
|
235
235
|
// const numbers: number[] = [];
|
|
236
236
|
// console.log('color mode', left());
|
|
237
|
-
// while (left()) {
|
|
237
|
+
// while (left() > 0) {
|
|
238
238
|
// numbers.push(readUint32(reader));
|
|
239
239
|
// }
|
|
240
240
|
// console.log('color mode', numbers);
|
|
@@ -245,7 +245,7 @@ export function readPsd(reader: PsdReader, readOptions: ReadOptions = {}) {
|
|
|
245
245
|
|
|
246
246
|
// image resources
|
|
247
247
|
readSection(reader, 1, left => {
|
|
248
|
-
while (left()) {
|
|
248
|
+
while (left() > 0) {
|
|
249
249
|
const sigOffset = reader.offset;
|
|
250
250
|
let sig = '';
|
|
251
251
|
|
|
@@ -431,7 +431,7 @@ function readLayerRecord(reader: PsdReader, psd: Psd, options: ReadOptionsExt) {
|
|
|
431
431
|
/*const blendingRanges =*/ readLayerBlendingRanges(reader);
|
|
432
432
|
layer.name = readPascalString(reader, 4);
|
|
433
433
|
|
|
434
|
-
while (left()) {
|
|
434
|
+
while (left() > 0) {
|
|
435
435
|
readAdditionalLayerInfo(reader, layer, psd, options);
|
|
436
436
|
}
|
|
437
437
|
});
|
|
@@ -485,7 +485,7 @@ function readLayerBlendingRanges(reader: PsdReader) {
|
|
|
485
485
|
const compositeGraphBlendDestinationRange = readUint32(reader);
|
|
486
486
|
const ranges = [];
|
|
487
487
|
|
|
488
|
-
while (left()) {
|
|
488
|
+
while (left() > 0) {
|
|
489
489
|
const sourceRange = readUint32(reader);
|
|
490
490
|
const destRange = readUint32(reader);
|
|
491
491
|
ranges.push({ sourceRange, destRange });
|