ag-psd 32.0.0 → 33.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/.v8-cache/v24.7.0-x64-ef5a0af0/03e19709 +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/05135617 +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/1130885f +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/226e2801 +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/2a19133e +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/4511bacf +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/68416cb2 +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/71df9cb3 +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/7ea06cea +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/932f0770 +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/acc36e66 +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/b3c2fab7 +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/c314aece +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/cfc49f4f +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/cff9434a +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/dc86f000 +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/e03e2acd +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/e6745c2b +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/e6b99945 +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/eeeebdfe +0 -0
- package/.v8-cache/v24.7.0-x64-ef5a0af0/f6fd8125 +0 -0
- package/CHANGELOG.md +78 -0
- package/LICENSE +5 -0
- package/README.md +3 -6
- package/README_PSD.md +242 -81
- package/dist/abr.d.ts +11 -4
- package/dist/abr.js +357 -230
- package/dist/abr.js.map +1 -1
- package/dist/additionalInfo.d.ts +54 -2
- package/dist/additionalInfo.js +487 -306
- package/dist/additionalInfo.js.map +1 -1
- package/dist/ase.d.ts +6 -1
- package/dist/ase.js +61 -61
- package/dist/ase.js.map +1 -1
- package/dist/bundle.js +1937 -1115
- package/dist/descriptor.d.ts +14 -8
- package/dist/descriptor.js +202 -186
- package/dist/descriptor.js.map +1 -1
- package/dist/helpers.d.ts +1 -1
- package/dist/helpers.js +4 -2
- package/dist/helpers.js.map +1 -1
- package/dist/imageResources.d.ts +15 -3
- package/dist/imageResources.js +503 -142
- package/dist/imageResources.js.map +1 -1
- package/dist/jpeg.js +8 -8
- package/dist/jpeg.js.map +1 -1
- package/dist/psd.d.ts +148 -17
- package/dist/psd.js.map +1 -1
- package/dist/psdReader.d.ts +10 -0
- package/dist/psdReader.js +278 -166
- package/dist/psdReader.js.map +1 -1
- package/dist/psdWriter.d.ts +1 -0
- package/dist/psdWriter.js +77 -62
- package/dist/psdWriter.js.map +1 -1
- package/dist/text.js +17 -6
- package/dist/text.js.map +1 -1
- package/dist/utf8.js +0 -3
- package/dist/utf8.js.map +1 -1
- package/dist-es/abr.d.ts +11 -4
- package/dist-es/abr.js +357 -230
- package/dist-es/abr.js.map +1 -1
- package/dist-es/additionalInfo.d.ts +54 -2
- package/dist-es/additionalInfo.js +487 -306
- package/dist-es/additionalInfo.js.map +1 -1
- package/dist-es/ase.d.ts +6 -1
- package/dist-es/ase.js +61 -61
- package/dist-es/ase.js.map +1 -1
- package/dist-es/descriptor.d.ts +14 -8
- package/dist-es/descriptor.js +202 -186
- package/dist-es/descriptor.js.map +1 -1
- package/dist-es/helpers.d.ts +1 -1
- package/dist-es/helpers.js +4 -2
- package/dist-es/helpers.js.map +1 -1
- package/dist-es/imageResources.d.ts +15 -3
- package/dist-es/imageResources.js +503 -142
- package/dist-es/imageResources.js.map +1 -1
- package/dist-es/jpeg.js +8 -8
- package/dist-es/jpeg.js.map +1 -1
- package/dist-es/psd.d.ts +148 -17
- package/dist-es/psd.js.map +1 -1
- package/dist-es/psdReader.d.ts +10 -0
- package/dist-es/psdReader.js +278 -166
- package/dist-es/psdReader.js.map +1 -1
- package/dist-es/psdWriter.d.ts +1 -0
- package/dist-es/psdWriter.js +77 -62
- package/dist-es/psdWriter.js.map +1 -1
- package/dist-es/text.js +17 -6
- package/dist-es/text.js.map +1 -1
- package/dist-es/utf8.js +0 -3
- package/dist-es/utf8.js.map +1 -1
- package/package.json +2 -2
- package/src/abr.ts +375 -235
- package/src/additionalInfo.ts +663 -420
- package/src/ase.ts +66 -61
- package/src/descriptor.ts +199 -195
- package/src/helpers.ts +4 -1
- package/src/imageResources.ts +632 -168
- package/src/jpeg.ts +8 -8
- package/src/psd.ts +156 -30
- package/src/psdReader.ts +273 -172
- package/src/psdWriter.ts +95 -58
- package/src/text.ts +17 -6
- package/src/utf8.ts +0 -4
package/src/jpeg.ts
CHANGED
|
@@ -761,7 +761,7 @@ function parse(data: Uint8Array) {
|
|
|
761
761
|
};
|
|
762
762
|
}
|
|
763
763
|
}
|
|
764
|
-
//
|
|
764
|
+
// APP1 - Exif
|
|
765
765
|
if (fileMarker === 0xFFE1) {
|
|
766
766
|
if (appData[0] === 0x45 &&
|
|
767
767
|
appData[1] === 0x78 &&
|
|
@@ -952,11 +952,11 @@ function parse(data: Uint8Array) {
|
|
|
952
952
|
// set each frame's components quantization table
|
|
953
953
|
for (let i = 0; i < frames.length; i++) {
|
|
954
954
|
const cp = frames[i].components;
|
|
955
|
-
for (
|
|
956
|
-
const
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
955
|
+
for (const key of Object.keys(cp)) {
|
|
956
|
+
const component = cp[+key];
|
|
957
|
+
const table = quantizationTables[component.quantizationIdx!];
|
|
958
|
+
if (!table) throw new Error(`Missing quantization table ${component.quantizationIdx}`);
|
|
959
|
+
component.quantizationTable = table;
|
|
960
960
|
}
|
|
961
961
|
}
|
|
962
962
|
|
|
@@ -1021,8 +1021,8 @@ function getData(decoded: Decoded) {
|
|
|
1021
1021
|
break;
|
|
1022
1022
|
}
|
|
1023
1023
|
case 3: {
|
|
1024
|
-
// The default transform for three components is true, the adobe transform marker overrides it
|
|
1025
|
-
colorTransform = decoded.adobe ? !!decoded.adobe.transformCode : true;
|
|
1024
|
+
// The default transform for three components is true, JFIF marker implies YCbCr, otherwise the adobe transform marker overrides it
|
|
1025
|
+
colorTransform = decoded.jfif ? true : decoded.adobe ? !!decoded.adobe.transformCode : true;
|
|
1026
1026
|
|
|
1027
1027
|
const component1 = decoded.components[0];
|
|
1028
1028
|
const component2 = decoded.components[1];
|
package/src/psd.ts
CHANGED
|
@@ -40,8 +40,7 @@ export interface EffectContour {
|
|
|
40
40
|
|
|
41
41
|
export interface EffectPattern {
|
|
42
42
|
name: string;
|
|
43
|
-
id: string;
|
|
44
|
-
// TODO: add fields
|
|
43
|
+
id: string; // pattern data is stored in `patterns` field of the document
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
export interface LayerEffectShadow {
|
|
@@ -70,12 +69,15 @@ export interface LayerEffectsOuterGlow {
|
|
|
70
69
|
blendMode?: BlendMode;
|
|
71
70
|
opacity?: number;
|
|
72
71
|
source?: GlowSource;
|
|
72
|
+
technique?: GlowTechnique;
|
|
73
73
|
antialiased?: boolean;
|
|
74
74
|
noise?: number;
|
|
75
75
|
range?: number;
|
|
76
76
|
choke?: UnitsValue;
|
|
77
77
|
jitter?: number;
|
|
78
78
|
contour?: EffectContour;
|
|
79
|
+
gradient?: EffectSolidGradient | EffectNoiseGradient;
|
|
80
|
+
interpolationMethod?: InterpolationMethod;
|
|
79
81
|
}
|
|
80
82
|
|
|
81
83
|
export interface LayerEffectInnerGlow {
|
|
@@ -94,6 +96,8 @@ export interface LayerEffectInnerGlow {
|
|
|
94
96
|
choke?: UnitsValue; // spread
|
|
95
97
|
jitter?: number;
|
|
96
98
|
contour?: EffectContour;
|
|
99
|
+
gradient?: EffectSolidGradient | EffectNoiseGradient;
|
|
100
|
+
interpolationMethod?: InterpolationMethod;
|
|
97
101
|
}
|
|
98
102
|
|
|
99
103
|
export interface LayerEffectBevel {
|
|
@@ -118,7 +122,10 @@ export interface LayerEffectBevel {
|
|
|
118
122
|
useTexture?: boolean;
|
|
119
123
|
useShape?: boolean;
|
|
120
124
|
antialiasGloss?: boolean;
|
|
121
|
-
contour?: EffectContour;
|
|
125
|
+
contour?: EffectContour; // gloss contour
|
|
126
|
+
shapeContour?: EffectContour; // contour of the bevel shape, used when `useShape` is enabled
|
|
127
|
+
range?: number;
|
|
128
|
+
antialiased?: boolean;
|
|
122
129
|
}
|
|
123
130
|
|
|
124
131
|
export interface LayerEffectSolidFill {
|
|
@@ -142,7 +149,7 @@ export interface LayerEffectStroke {
|
|
|
142
149
|
opacity?: number;
|
|
143
150
|
color?: Color;
|
|
144
151
|
gradient?: (EffectSolidGradient | EffectNoiseGradient) & ExtraGradientInfo;
|
|
145
|
-
pattern?: EffectPattern &
|
|
152
|
+
pattern?: EffectPattern & ExtraPatternInfo;
|
|
146
153
|
}
|
|
147
154
|
|
|
148
155
|
export interface LayerEffectSatin {
|
|
@@ -160,7 +167,6 @@ export interface LayerEffectSatin {
|
|
|
160
167
|
contour?: EffectContour;
|
|
161
168
|
}
|
|
162
169
|
|
|
163
|
-
// not supported yet because of `Patt` section not implemented
|
|
164
170
|
export interface LayerEffectPatternOverlay {
|
|
165
171
|
present?: boolean;
|
|
166
172
|
showInDialog?: boolean;
|
|
@@ -168,6 +174,7 @@ export interface LayerEffectPatternOverlay {
|
|
|
168
174
|
blendMode?: BlendMode;
|
|
169
175
|
opacity?: number;
|
|
170
176
|
scale?: number;
|
|
177
|
+
angle?: number;
|
|
171
178
|
pattern?: EffectPattern;
|
|
172
179
|
phase?: { x: number; y: number; };
|
|
173
180
|
align?: boolean;
|
|
@@ -222,7 +229,7 @@ export interface LayerEffectsInfo {
|
|
|
222
229
|
satin?: LayerEffectSatin;
|
|
223
230
|
stroke?: LayerEffectStroke[];
|
|
224
231
|
gradientOverlay?: LayerEffectGradientOverlay[];
|
|
225
|
-
patternOverlay?: LayerEffectPatternOverlay; //
|
|
232
|
+
patternOverlay?: LayerEffectPatternOverlay; // pattern is referenced only by name/id
|
|
226
233
|
}
|
|
227
234
|
|
|
228
235
|
export type PixelArray = Uint8ClampedArray | Uint8Array | Uint16Array | Float32Array;
|
|
@@ -250,7 +257,7 @@ export interface LayerMaskData {
|
|
|
250
257
|
imageData?: PixelData;
|
|
251
258
|
}
|
|
252
259
|
|
|
253
|
-
export type TextGridding = 'none' | 'round';
|
|
260
|
+
export type TextGridding = 'none' | 'round';
|
|
254
261
|
export type Orientation = 'horizontal' | 'vertical';
|
|
255
262
|
export type AntiAlias = 'none' | 'sharp' | 'crisp' | 'strong' | 'smooth' | 'platform' | 'platformLCD';
|
|
256
263
|
export type WarpStyle =
|
|
@@ -497,6 +504,8 @@ export interface ExtraGradientInfo {
|
|
|
497
504
|
export interface ExtraPatternInfo {
|
|
498
505
|
linked?: boolean;
|
|
499
506
|
phase?: { x: number; y: number; };
|
|
507
|
+
scale?: number;
|
|
508
|
+
angle?: number;
|
|
500
509
|
}
|
|
501
510
|
|
|
502
511
|
export type VectorContent = { type: 'color'; color: Color; } |
|
|
@@ -506,7 +515,7 @@ export type VectorContent = { type: 'color'; color: Color; } |
|
|
|
506
515
|
|
|
507
516
|
export type RenderingIntent = 'perceptual' | 'saturation' | 'relative colorimetric' | 'absolute colorimetric';
|
|
508
517
|
|
|
509
|
-
export type Units = 'Pixels' | 'Points' | 'Picas' | 'Millimeters' | 'Centimeters' | 'Inches' | 'None' | 'Density';
|
|
518
|
+
export type Units = 'Pixels' | 'Points' | 'Picas' | 'Millimeters' | 'Centimeters' | 'Inches' | 'None' | 'Density' | 'Distance'; // Distance is in points (1/72 inch)
|
|
510
519
|
|
|
511
520
|
export interface UnitsValue {
|
|
512
521
|
units: Units;
|
|
@@ -538,22 +547,18 @@ export interface PresetInfo {
|
|
|
538
547
|
|
|
539
548
|
export interface LevelsAdjustment extends PresetInfo {
|
|
540
549
|
type: 'levels';
|
|
541
|
-
//
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
green?: LevelsAdjustmentChannel;
|
|
545
|
-
blue?: LevelsAdjustmentChannel;
|
|
550
|
+
// levels for each channel, index 0 is composite channel, followed by document color channels (red, green, blue for RGB,
|
|
551
|
+
// cyan, magenta, yellow, black for CMYK, gray for Grayscale), missing channels use default values (no change)
|
|
552
|
+
channels?: LevelsAdjustmentChannel[];
|
|
546
553
|
}
|
|
547
554
|
|
|
548
555
|
export type CurvesAdjustmentChannel = { input: number; output: number; }[];
|
|
549
556
|
|
|
550
557
|
export interface CurvesAdjustment extends PresetInfo {
|
|
551
558
|
type: 'curves';
|
|
552
|
-
//
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
green?: CurvesAdjustmentChannel;
|
|
556
|
-
blue?: CurvesAdjustmentChannel;
|
|
559
|
+
// curve for each channel, index 0 is composite channel, followed by document color channels (red, green, blue for RGB,
|
|
560
|
+
// cyan, magenta, yellow, black for CMYK, gray for Grayscale), missing or empty curve means no change to the channel
|
|
561
|
+
channels?: CurvesAdjustmentChannel[];
|
|
557
562
|
}
|
|
558
563
|
|
|
559
564
|
export interface ExposureAdjustment extends PresetInfo {
|
|
@@ -581,7 +586,17 @@ export interface HueSaturationAdjustmentChannel {
|
|
|
581
586
|
|
|
582
587
|
export interface HueSaturationAdjustment extends PresetInfo {
|
|
583
588
|
type: 'hue/saturation';
|
|
584
|
-
|
|
589
|
+
colorize?: boolean;
|
|
590
|
+
colorization?: {
|
|
591
|
+
hue: number; // 0..360
|
|
592
|
+
saturation: number; // 0..100
|
|
593
|
+
lightness: number; // -100..100
|
|
594
|
+
};
|
|
595
|
+
master?: {
|
|
596
|
+
hue: number;
|
|
597
|
+
saturation: number;
|
|
598
|
+
lightness: number;
|
|
599
|
+
};
|
|
585
600
|
reds?: HueSaturationAdjustmentChannel;
|
|
586
601
|
yellows?: HueSaturationAdjustmentChannel;
|
|
587
602
|
greens?: HueSaturationAdjustmentChannel;
|
|
@@ -670,6 +685,7 @@ export interface ColorStop {
|
|
|
670
685
|
color: Color;
|
|
671
686
|
location: number;
|
|
672
687
|
midpoint: number;
|
|
688
|
+
type?: 'foreground' | 'background'; // stop uses foreground/background color (`color` is the color at the time of saving)
|
|
673
689
|
}
|
|
674
690
|
|
|
675
691
|
export interface OpacityStop {
|
|
@@ -737,6 +753,15 @@ export type LinkedFile = {
|
|
|
737
753
|
};
|
|
738
754
|
}
|
|
739
755
|
|
|
756
|
+
export interface LevelsFilterAdjustment {
|
|
757
|
+
channels: ('composite' | 'red' | 'green' | 'blue')[];
|
|
758
|
+
shadowInput?: number; // 0..255
|
|
759
|
+
highlightInput?: number; // 0..255
|
|
760
|
+
shadowOutput?: number; // 0..255
|
|
761
|
+
highlightOutput?: number; // 0..255
|
|
762
|
+
midtoneInput?: number; // gamma, 1 by default
|
|
763
|
+
}
|
|
764
|
+
|
|
740
765
|
type FilterVariant = {
|
|
741
766
|
type: 'average' | 'blur' | 'blur more';
|
|
742
767
|
} | {
|
|
@@ -1164,7 +1189,7 @@ type FilterVariant = {
|
|
|
1164
1189
|
} | {
|
|
1165
1190
|
type: 'curves';
|
|
1166
1191
|
filter: {
|
|
1167
|
-
presetKind
|
|
1192
|
+
presetKind?: 'custom' | 'default';
|
|
1168
1193
|
adjustments?: ({
|
|
1169
1194
|
channels: ('composite' | 'red' | 'green' | 'blue')[];
|
|
1170
1195
|
curve: { x: number; y: number; curved?: boolean; }[];
|
|
@@ -1173,6 +1198,12 @@ type FilterVariant = {
|
|
|
1173
1198
|
values: number[];
|
|
1174
1199
|
})[];
|
|
1175
1200
|
};
|
|
1201
|
+
} | {
|
|
1202
|
+
type: 'levels';
|
|
1203
|
+
filter: {
|
|
1204
|
+
presetKind?: 'custom' | 'default';
|
|
1205
|
+
adjustments?: LevelsFilterAdjustment[];
|
|
1206
|
+
};
|
|
1176
1207
|
} | {
|
|
1177
1208
|
type: 'invert';
|
|
1178
1209
|
} | {
|
|
@@ -1234,6 +1265,7 @@ export interface PlacedLayer {
|
|
|
1234
1265
|
id: string; // id of linked image file (psd.linkedFiles), must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)
|
|
1235
1266
|
placed?: string; // unique id
|
|
1236
1267
|
type: PlacedLayerType;
|
|
1268
|
+
external?: boolean; // linked smart object (linked file is stored outside of the document)
|
|
1237
1269
|
pageNumber?: number;
|
|
1238
1270
|
totalPages?: number;
|
|
1239
1271
|
frameStep?: { numerator: number; denominator: number; };
|
|
@@ -1262,7 +1294,7 @@ export type LayerColor = 'none' | 'red' | 'orange' | 'yellow' | 'green' | 'blue'
|
|
|
1262
1294
|
|
|
1263
1295
|
export interface KeyDescriptorItem {
|
|
1264
1296
|
keyShapeInvalidated?: boolean;
|
|
1265
|
-
keyOriginType?: number;
|
|
1297
|
+
keyOriginType?: number; // shape type: 1 - rectangle, 2 - rounded rectangle, 4 - line, 5 - ellipse, 8 - polygon
|
|
1266
1298
|
keyOriginResolution?: number;
|
|
1267
1299
|
keyOriginRRectRadii?: {
|
|
1268
1300
|
topRight: UnitsValue;
|
|
@@ -1280,10 +1312,7 @@ export interface KeyDescriptorItem {
|
|
|
1280
1312
|
transform?: number[]; // 2d transform matrix [xx, xy, yx, yy, tx, ty]
|
|
1281
1313
|
}
|
|
1282
1314
|
|
|
1283
|
-
export interface
|
|
1284
|
-
invert?: boolean;
|
|
1285
|
-
notLink?: boolean;
|
|
1286
|
-
disable?: boolean;
|
|
1315
|
+
export interface VectorPathData {
|
|
1287
1316
|
fillStartsWithAllPixels?: boolean;
|
|
1288
1317
|
clipboard?: {
|
|
1289
1318
|
top: number;
|
|
@@ -1295,6 +1324,20 @@ export interface LayerVectorMask {
|
|
|
1295
1324
|
paths: BezierPath[];
|
|
1296
1325
|
}
|
|
1297
1326
|
|
|
1327
|
+
export interface LayerVectorMask extends VectorPathData {
|
|
1328
|
+
invert?: boolean;
|
|
1329
|
+
notLink?: boolean;
|
|
1330
|
+
disable?: boolean;
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1333
|
+
export interface SavedPath extends VectorPathData {
|
|
1334
|
+
name: string;
|
|
1335
|
+
symmetryMode?: string; // raw enum value, e.g. 'pathSymmetryModeBasicPath'
|
|
1336
|
+
vectorOrigination?: {
|
|
1337
|
+
keyDescriptorList: KeyDescriptorItem[];
|
|
1338
|
+
};
|
|
1339
|
+
}
|
|
1340
|
+
|
|
1298
1341
|
export interface AnimationFrame {
|
|
1299
1342
|
frames: number[]; // IDs of frames that this modifiers applies to
|
|
1300
1343
|
enable?: boolean;
|
|
@@ -1376,6 +1419,7 @@ export interface LayerAdditionalInfo {
|
|
|
1376
1419
|
composite?: boolean;
|
|
1377
1420
|
position?: boolean;
|
|
1378
1421
|
artboards?: boolean;
|
|
1422
|
+
all?: boolean;
|
|
1379
1423
|
};
|
|
1380
1424
|
layerColor?: LayerColor;
|
|
1381
1425
|
referencePoint?: {
|
|
@@ -1393,7 +1437,7 @@ export interface LayerAdditionalInfo {
|
|
|
1393
1437
|
};
|
|
1394
1438
|
effects?: LayerEffectsInfo;
|
|
1395
1439
|
text?: LayerTextData;
|
|
1396
|
-
patterns?: PatternInfo[];
|
|
1440
|
+
patterns?: PatternInfo[];
|
|
1397
1441
|
vectorFill?: VectorContent;
|
|
1398
1442
|
vectorStroke?: {
|
|
1399
1443
|
strokeEnabled?: boolean;
|
|
@@ -1415,9 +1459,15 @@ export interface LayerAdditionalInfo {
|
|
|
1415
1459
|
vectorMask?: LayerVectorMask;
|
|
1416
1460
|
usingAlignedRendering?: boolean;
|
|
1417
1461
|
timestamp?: number; // seconds
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1462
|
+
generatorSettings?: { // Generator (Export As) settings
|
|
1463
|
+
exportAs?: {
|
|
1464
|
+
exportOption?: string; // JSON string
|
|
1465
|
+
scaleSettings?: string; // JSON string
|
|
1466
|
+
};
|
|
1467
|
+
assets?: string; // JSON string, Generator image assets settings (only on document)
|
|
1468
|
+
layerTime?: number; // seconds
|
|
1469
|
+
crema?: string; // JSON string, Export As document settings (only on document)
|
|
1470
|
+
};
|
|
1421
1471
|
adjustment?: AdjustmentLayer;
|
|
1422
1472
|
placedLayer?: PlacedLayer;
|
|
1423
1473
|
vectorOrigination?: {
|
|
@@ -1525,6 +1575,20 @@ export enum LayerCompCapturedInfo {
|
|
|
1525
1575
|
Appearance = 4,
|
|
1526
1576
|
}
|
|
1527
1577
|
|
|
1578
|
+
export interface HalftoneScreen {
|
|
1579
|
+
frequency: number;
|
|
1580
|
+
frequencyUnits: 'lines/inch' | 'lines/cm';
|
|
1581
|
+
angle: number; // degrees
|
|
1582
|
+
shape: 'round' | 'ellipse' | 'line' | 'square' | 'cross' | 'diamond';
|
|
1583
|
+
accurateScreens: boolean;
|
|
1584
|
+
printerDefaultScreens: boolean;
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
export interface PrintTransferFunction {
|
|
1588
|
+
curve: number[]; // 13 points, values 0..1000 (0% - 100%), -1 for missing points (first and last point are always set)
|
|
1589
|
+
override: boolean;
|
|
1590
|
+
}
|
|
1591
|
+
|
|
1528
1592
|
export interface ImageResources {
|
|
1529
1593
|
layerState?: number;
|
|
1530
1594
|
layerSelectionIds?: number[];
|
|
@@ -1554,6 +1618,8 @@ export interface ImageResources {
|
|
|
1554
1618
|
guides?: {
|
|
1555
1619
|
location: number;
|
|
1556
1620
|
direction: 'horizontal' | 'vertical';
|
|
1621
|
+
color?: RGB; // Photoshop default is cyan (74, 255, 255)
|
|
1622
|
+
id?: string; // unique id (GUID)
|
|
1557
1623
|
}[];
|
|
1558
1624
|
};
|
|
1559
1625
|
resolutionInfo?: {
|
|
@@ -1578,6 +1644,7 @@ export interface ImageResources {
|
|
|
1578
1644
|
printerManagesColors?: boolean;
|
|
1579
1645
|
printerName?: string;
|
|
1580
1646
|
printerProfile?: string;
|
|
1647
|
+
printerProfileColorSpace?: 'rgb' | 'grayscale'; // color space of printer profile, missing value means 'rgb'
|
|
1581
1648
|
printSixteenBit?: boolean;
|
|
1582
1649
|
renderingIntent?: RenderingIntent;
|
|
1583
1650
|
hardProof?: boolean;
|
|
@@ -1605,7 +1672,63 @@ export interface ImageResources {
|
|
|
1605
1672
|
printFlags?: boolean;
|
|
1606
1673
|
};
|
|
1607
1674
|
iccUntaggedProfile?: boolean;
|
|
1675
|
+
colorSamplers?: {
|
|
1676
|
+
x: number; // pixels
|
|
1677
|
+
y: number; // pixels
|
|
1678
|
+
colorSpace: number; // -1 - actual color, 0 - RGB, 1 - HSB, 2 - CMYK, 7 - Lab, 8 - grayscale, ...
|
|
1679
|
+
}[];
|
|
1680
|
+
effectsVisible?: boolean; // global flag to show or hide all layer effects
|
|
1681
|
+
iccProfile?: Uint8Array; // raw ICC profile data
|
|
1682
|
+
exifData?: Uint8Array; // raw EXIF data (TIFF format)
|
|
1683
|
+
iptcData?: Uint8Array; // raw IPTC-NAA record
|
|
1684
|
+
windowsDevMode?: Uint8Array; // raw Windows DEVMODE structure (printer settings)
|
|
1685
|
+
outputSettings?: any; // Save for Web output settings (raw descriptor)
|
|
1686
|
+
colorHalftoneScreens?: HalftoneScreen[]; // cyan, magenta, yellow and black
|
|
1687
|
+
grayscaleHalftoneScreens?: HalftoneScreen[];
|
|
1688
|
+
colorTransferFunctions?: PrintTransferFunction[]; // one for each of 4 printing plates
|
|
1689
|
+
grayscaleTransferFunctions?: PrintTransferFunction[];
|
|
1690
|
+
printStyle?: {
|
|
1691
|
+
caption?: boolean;
|
|
1692
|
+
calibrationBars?: boolean;
|
|
1693
|
+
registrationMarks?: boolean;
|
|
1694
|
+
cornerCropMarks?: boolean;
|
|
1695
|
+
centerCropMarks?: boolean;
|
|
1696
|
+
labels?: boolean;
|
|
1697
|
+
negative?: boolean;
|
|
1698
|
+
emulsionDown?: boolean;
|
|
1699
|
+
interpolate?: boolean;
|
|
1700
|
+
backgroundColor?: Color;
|
|
1701
|
+
border?: UnitsValue;
|
|
1702
|
+
bleed?: UnitsValue;
|
|
1703
|
+
resolution?: UnitsValue;
|
|
1704
|
+
vectorData?: boolean;
|
|
1705
|
+
pagePosition?: string; // 'centered' or raw enum value
|
|
1706
|
+
left?: UnitsValue;
|
|
1707
|
+
top?: UnitsValue;
|
|
1708
|
+
scale?: number; // 0..1
|
|
1709
|
+
cropWhenPrinting?: boolean;
|
|
1710
|
+
cropRect?: { top: number; left: number; bottom: number; right: number; };
|
|
1711
|
+
};
|
|
1712
|
+
printFlagsInfo?: {
|
|
1713
|
+
centerCropMarks: boolean;
|
|
1714
|
+
bleedWidth: number;
|
|
1715
|
+
bleedWidthScale: number;
|
|
1716
|
+
};
|
|
1717
|
+
indexedColorCount?: number; // number of used colors in indexed color palette
|
|
1718
|
+
transparencyIndex?: number; // index of transparent color in indexed color palette
|
|
1719
|
+
alphaChannelDisplayInfo?: {
|
|
1720
|
+
color?: Color;
|
|
1721
|
+
rawColor?: { colorSpace: number; values: number[]; }; // color in color space not supported by this library (instead of `color`)
|
|
1722
|
+
opacity: number; // 0..1
|
|
1723
|
+
kind: 'selected' | 'protected' | 'spot'; // color indicates selected areas, protected (masked) areas or spot color
|
|
1724
|
+
}[];
|
|
1608
1725
|
pathSelectionState?: string[];
|
|
1726
|
+
savedPaths?: SavedPath[]; // paths from the paths panel
|
|
1727
|
+
workPath?: VectorPathData;
|
|
1728
|
+
clippingPath?: {
|
|
1729
|
+
name: string; // name of the saved path used as clipping path
|
|
1730
|
+
flatness: number; // device pixels, 0 for printer default
|
|
1731
|
+
};
|
|
1609
1732
|
imageReadyVariables?: string;
|
|
1610
1733
|
imageReadyDataSets?: string;
|
|
1611
1734
|
animations?: Animations;
|
|
@@ -1794,7 +1917,7 @@ export interface Psd extends LayerAdditionalInfo {
|
|
|
1794
1917
|
imageData?: PixelData;
|
|
1795
1918
|
rawCompositeData?: Uint8Array;
|
|
1796
1919
|
/** Information needed to decode `rawCompositeData` (see `getCompositeImageData`) */
|
|
1797
|
-
rawCompositeDataInfo?: { large: boolean; globalAlpha: boolean; };
|
|
1920
|
+
rawCompositeDataInfo?: { large: boolean; globalAlpha: boolean; layersInGlobalInfo?: boolean; };
|
|
1798
1921
|
imageResources?: ImageResources;
|
|
1799
1922
|
linkedFiles?: LinkedFile[]; // used in smart objects
|
|
1800
1923
|
artboards?: {
|
|
@@ -1865,4 +1988,7 @@ export interface WriteOptions {
|
|
|
1865
1988
|
/** Uses zip compression when writing PSD file, will result in smaller file size but may be incompatible
|
|
1866
1989
|
* with some software. It may also be significantly slower. */
|
|
1867
1990
|
compress?: boolean;
|
|
1991
|
+
|
|
1992
|
+
/** Used only for development. */
|
|
1993
|
+
log?: (...args: any[]) => void;
|
|
1868
1994
|
}
|