ag-psd 31.0.3 → 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.
Files changed (159) hide show
  1. package/.v8-cache/v24.7.0-x64-ef5a0af0/00d0e0b4 +0 -0
  2. package/.v8-cache/v24.7.0-x64-ef5a0af0/03e19709 +0 -0
  3. package/.v8-cache/v24.7.0-x64-ef5a0af0/05135617 +0 -0
  4. package/.v8-cache/v24.7.0-x64-ef5a0af0/0cc76730 +0 -0
  5. package/.v8-cache/v24.7.0-x64-ef5a0af0/1130885f +0 -0
  6. package/.v8-cache/v24.7.0-x64-ef5a0af0/20729831 +0 -0
  7. package/.v8-cache/v24.7.0-x64-ef5a0af0/214a593b +0 -0
  8. package/.v8-cache/v24.7.0-x64-ef5a0af0/226e2801 +0 -0
  9. package/.v8-cache/v24.7.0-x64-ef5a0af0/25f8b84a +0 -0
  10. package/.v8-cache/v24.7.0-x64-ef5a0af0/27518289 +0 -0
  11. package/.v8-cache/v24.7.0-x64-ef5a0af0/2a19133e +0 -0
  12. package/.v8-cache/v24.7.0-x64-ef5a0af0/330ef2d9 +0 -0
  13. package/.v8-cache/v24.7.0-x64-ef5a0af0/37ff16b8 +0 -0
  14. package/.v8-cache/v24.7.0-x64-ef5a0af0/3f72a97c +0 -0
  15. package/.v8-cache/v24.7.0-x64-ef5a0af0/4511bacf +0 -0
  16. package/.v8-cache/v24.7.0-x64-ef5a0af0/68416cb2 +0 -0
  17. package/.v8-cache/v24.7.0-x64-ef5a0af0/71df9cb3 +0 -0
  18. package/.v8-cache/v24.7.0-x64-ef5a0af0/75efccd4 +0 -0
  19. package/.v8-cache/v24.7.0-x64-ef5a0af0/762f9305 +0 -0
  20. package/.v8-cache/v24.7.0-x64-ef5a0af0/7bcfc50a +0 -0
  21. package/.v8-cache/v24.7.0-x64-ef5a0af0/7ea06cea +0 -0
  22. package/.v8-cache/v24.7.0-x64-ef5a0af0/825e9a05 +0 -0
  23. package/.v8-cache/v24.7.0-x64-ef5a0af0/87372817 +0 -0
  24. package/.v8-cache/v24.7.0-x64-ef5a0af0/87cf2209 +0 -0
  25. package/.v8-cache/v24.7.0-x64-ef5a0af0/891a7c73 +0 -0
  26. package/.v8-cache/v24.7.0-x64-ef5a0af0/8b68a3a2 +0 -0
  27. package/.v8-cache/v24.7.0-x64-ef5a0af0/932f0770 +0 -0
  28. package/.v8-cache/v24.7.0-x64-ef5a0af0/a1d12a93 +0 -0
  29. package/.v8-cache/v24.7.0-x64-ef5a0af0/a7e80865 +0 -0
  30. package/.v8-cache/v24.7.0-x64-ef5a0af0/ac317c9c +0 -0
  31. package/.v8-cache/v24.7.0-x64-ef5a0af0/acc36e66 +0 -0
  32. package/.v8-cache/v24.7.0-x64-ef5a0af0/b3c2fab7 +0 -0
  33. package/.v8-cache/v24.7.0-x64-ef5a0af0/b8569d6b +0 -0
  34. package/.v8-cache/v24.7.0-x64-ef5a0af0/b8b073c4 +0 -0
  35. package/.v8-cache/v24.7.0-x64-ef5a0af0/bb489c89 +0 -0
  36. package/.v8-cache/v24.7.0-x64-ef5a0af0/c0b789d2 +0 -0
  37. package/.v8-cache/v24.7.0-x64-ef5a0af0/c314aece +0 -0
  38. package/.v8-cache/v24.7.0-x64-ef5a0af0/c46725e1 +0 -0
  39. package/.v8-cache/v24.7.0-x64-ef5a0af0/c794cb34 +0 -0
  40. package/.v8-cache/v24.7.0-x64-ef5a0af0/cd4ae980 +0 -0
  41. package/.v8-cache/v24.7.0-x64-ef5a0af0/cfc49f4f +0 -0
  42. package/.v8-cache/v24.7.0-x64-ef5a0af0/cff9434a +0 -0
  43. package/.v8-cache/v24.7.0-x64-ef5a0af0/d02dd6f7 +0 -0
  44. package/.v8-cache/v24.7.0-x64-ef5a0af0/dc86f000 +0 -0
  45. package/.v8-cache/v24.7.0-x64-ef5a0af0/e03e2acd +0 -0
  46. package/.v8-cache/v24.7.0-x64-ef5a0af0/e6735171 +0 -0
  47. package/.v8-cache/v24.7.0-x64-ef5a0af0/e6745c2b +0 -0
  48. package/.v8-cache/v24.7.0-x64-ef5a0af0/e6b99945 +0 -0
  49. package/.v8-cache/v24.7.0-x64-ef5a0af0/eeeebdfe +0 -0
  50. package/.v8-cache/v24.7.0-x64-ef5a0af0/f5417276 +0 -0
  51. package/.v8-cache/v24.7.0-x64-ef5a0af0/f6fd8125 +0 -0
  52. package/.v8-cache/v24.7.0-x64-ef5a0af0/f74d3518 +0 -0
  53. package/.v8-cache/v24.7.0-x64-ef5a0af0/f886deac +0 -0
  54. package/.v8-cache/v24.7.0-x64-ef5a0af0/fd0a2987 +0 -0
  55. package/.v8-cache/v24.7.0-x64-ef5a0af0/fe349423 +0 -0
  56. package/CHANGELOG.md +107 -0
  57. package/LICENSE +5 -0
  58. package/README.md +3 -6
  59. package/README_PSD.md +242 -81
  60. package/dist/abr.d.ts +11 -4
  61. package/dist/abr.js +363 -229
  62. package/dist/abr.js.map +1 -1
  63. package/dist/additionalInfo.d.ts +56 -2
  64. package/dist/additionalInfo.js +600 -364
  65. package/dist/additionalInfo.js.map +1 -1
  66. package/dist/ase.d.ts +6 -1
  67. package/dist/ase.js +61 -61
  68. package/dist/ase.js.map +1 -1
  69. package/dist/bundle.js +3096 -1541
  70. package/dist/descriptor.d.ts +25 -6
  71. package/dist/descriptor.js +380 -135
  72. package/dist/descriptor.js.map +1 -1
  73. package/dist/effectsHelpers.js +12 -12
  74. package/dist/effectsHelpers.js.map +1 -1
  75. package/dist/engineData.d.ts +3 -1
  76. package/dist/engineData.js +34 -13
  77. package/dist/engineData.js.map +1 -1
  78. package/dist/engineData2.js +50 -21
  79. package/dist/engineData2.js.map +1 -1
  80. package/dist/helpers.d.ts +6 -3
  81. package/dist/helpers.js +22 -6
  82. package/dist/helpers.js.map +1 -1
  83. package/dist/imageResources.d.ts +15 -3
  84. package/dist/imageResources.js +529 -144
  85. package/dist/imageResources.js.map +1 -1
  86. package/dist/index.js +1 -0
  87. package/dist/index.js.map +1 -1
  88. package/dist/jpeg.js +30 -10
  89. package/dist/jpeg.js.map +1 -1
  90. package/dist/psd.d.ts +154 -18
  91. package/dist/psd.js.map +1 -1
  92. package/dist/psdReader.d.ts +12 -2
  93. package/dist/psdReader.js +720 -421
  94. package/dist/psdReader.js.map +1 -1
  95. package/dist/psdWriter.d.ts +3 -0
  96. package/dist/psdWriter.js +167 -130
  97. package/dist/psdWriter.js.map +1 -1
  98. package/dist/text.js +143 -29
  99. package/dist/text.js.map +1 -1
  100. package/dist/utf8.js +36 -18
  101. package/dist/utf8.js.map +1 -1
  102. package/dist-es/abr.d.ts +11 -4
  103. package/dist-es/abr.js +363 -229
  104. package/dist-es/abr.js.map +1 -1
  105. package/dist-es/additionalInfo.d.ts +56 -2
  106. package/dist-es/additionalInfo.js +600 -364
  107. package/dist-es/additionalInfo.js.map +1 -1
  108. package/dist-es/ase.d.ts +6 -1
  109. package/dist-es/ase.js +61 -61
  110. package/dist-es/ase.js.map +1 -1
  111. package/dist-es/descriptor.d.ts +25 -6
  112. package/dist-es/descriptor.js +380 -135
  113. package/dist-es/descriptor.js.map +1 -1
  114. package/dist-es/effectsHelpers.js +12 -12
  115. package/dist-es/effectsHelpers.js.map +1 -1
  116. package/dist-es/engineData.d.ts +3 -1
  117. package/dist-es/engineData.js +34 -13
  118. package/dist-es/engineData.js.map +1 -1
  119. package/dist-es/engineData2.js +50 -21
  120. package/dist-es/engineData2.js.map +1 -1
  121. package/dist-es/helpers.d.ts +6 -3
  122. package/dist-es/helpers.js +22 -6
  123. package/dist-es/helpers.js.map +1 -1
  124. package/dist-es/imageResources.d.ts +15 -3
  125. package/dist-es/imageResources.js +529 -144
  126. package/dist-es/imageResources.js.map +1 -1
  127. package/dist-es/index.js +1 -0
  128. package/dist-es/index.js.map +1 -1
  129. package/dist-es/jpeg.js +30 -10
  130. package/dist-es/jpeg.js.map +1 -1
  131. package/dist-es/psd.d.ts +154 -18
  132. package/dist-es/psd.js.map +1 -1
  133. package/dist-es/psdReader.d.ts +12 -2
  134. package/dist-es/psdReader.js +720 -421
  135. package/dist-es/psdReader.js.map +1 -1
  136. package/dist-es/psdWriter.d.ts +3 -0
  137. package/dist-es/psdWriter.js +167 -130
  138. package/dist-es/psdWriter.js.map +1 -1
  139. package/dist-es/text.js +143 -29
  140. package/dist-es/text.js.map +1 -1
  141. package/dist-es/utf8.js +36 -18
  142. package/dist-es/utf8.js.map +1 -1
  143. package/package.json +2 -2
  144. package/src/abr.ts +380 -232
  145. package/src/additionalInfo.ts +781 -477
  146. package/src/ase.ts +66 -61
  147. package/src/descriptor.ts +386 -142
  148. package/src/effectsHelpers.ts +9 -9
  149. package/src/engineData.ts +36 -13
  150. package/src/engineData2.ts +468 -432
  151. package/src/helpers.ts +23 -5
  152. package/src/imageResources.ts +658 -167
  153. package/src/index.ts +1 -0
  154. package/src/jpeg.ts +27 -12
  155. package/src/psd.ts +158 -30
  156. package/src/psdReader.ts +732 -414
  157. package/src/psdWriter.ts +186 -132
  158. package/src/text.ts +139 -18
  159. package/src/utf8.ts +35 -21
package/CHANGELOG.md CHANGED
@@ -1,5 +1,112 @@
1
1
  # Changelog
2
2
 
3
+ ## v33.0.0
4
+ - **BREAKING CHANGE:** CMYK colors stored in binary color structures (legacy `lrFX` effects, background color, filter mask, etc.) are now inverted on read and write (Photoshop stores 0 as 100% ink), matching CMYK colors read from descriptors
5
+ - **BREAKING CHANGE:** Text layers with "Windows" and "Windows LCD" anti-aliasing now read as `platform` and `platformLCD` instead of `smooth`, and writing them no longer produces `sharp` anti-aliasing
6
+ - **BREAKING CHANGE:** Hue/saturation adjustment colorize settings are now read as `colorize` and `colorization` (`hue` 0-360, `saturation`, `lightness`) fields, previously they were incorrectly read as `a`, `b`, `c`, `d` fields of `master`, which now only has `hue`, `saturation` and `lightness`
7
+ - **BREAKING CHANGE:** Removed `pathList` field (it was always empty), saved paths are now read and written as `imageResources.savedPaths`
8
+ - **BREAKING CHANGE:** Levels and curves adjustment layers now use `channels` array (index 0 is composite channel, followed by document color channels) instead of `rgb`, `red`, `green` and `blue` fields, previously black channel of CMYK documents (and other channels) was lost
9
+ - Added support for levels smart filter
10
+ - Added `savedPaths`, `workPath` and `clippingPath` image resources (paths from the Paths panel), previously they were not written back
11
+ - Added support for reading CMYK documents (8 and 16 bits per channel), image data is converted to RGB using approximation of Photoshop's default U.S. Web Coated (SWOP) v2 profile
12
+ - Added `iccProfile`, `exifData`, `iptcData`, `printStyle`, `printFlagsInfo`, `indexedColorCount`, `transparencyIndex`, `alphaChannelDisplayInfo`, `colorHalftoneScreens`, `grayscaleHalftoneScreens`, `colorTransferFunctions` and `grayscaleTransferFunctions` image resources, previously they were not written back
13
+ - Added `generatorSettings` layer field (Generator / Export As settings), and document-level `generatorSettings` (with `assets` and `crema` fields), previously it was not written back
14
+ - Added `printerProfileColorSpace` field to `printInformation`, grayscale printer profile was previously written as RGB, `printerProfile`, `blackPointCompensation` and `proofSetup` are no longer written with default values when missing
15
+ - Added `buildUp` and `group` (brush groups / folders) fields to brushes read with `readAbr`
16
+ - Added support for reading ABR version 1 and 2 files (Photoshop 6 and earlier), sampled brushes are read as brushes with `sampled` shape and sample with generated `brush-N` id
17
+ - Added pattern `linked`, `phase`, `scale` and `angle` fields to stroke effect type (they were already read and written)
18
+ - Fixed writing file read with `useRawData` option producing black composite image
19
+ - Fixed writing color palette of Indexed documents into color mode data of RGB file
20
+ - Fixed writing vector mask of layers with vector stroke as `vmsk` instead of `vsms` (and vector mask of all layers in PSB files as `vsms`), vector masks now also include path component indices like Photoshop
21
+ - Fixed writing effects of group layers in `lfx2` / `lmfx` section instead of `lfxs`
22
+ - Fixed writing Displace smart filter displacement map path without trailing null character
23
+ - Fixed writing placed layer without `width` and `height` with zero size when `warp` is provided
24
+ - Added `'Distance'` units (used by print style)
25
+ - Added `external` field to `placedLayer` for linked smart objects, they are now written as `SoLE` without `PlLd` (like Photoshop), previously they were written as embedded smart objects
26
+ - Added `gradient` and `interpolationMethod` fields to outer and inner glow effect types
27
+ - Added `throwForMissingFeatures` and `totalMemoryLimit` options to `readAbr` and `logMissingFeatures` and `throwForMissingFeatures` options to `readAse`
28
+ - Added `log` write option and `log` field to `PsdWriter`, same as for reading
29
+ - Fixed curves smart filter without preset kind removing all smart filters of the layer
30
+ - Added `shapeContour` field to bevel effect (contour used when `useShape` is enabled), previously it overwrote `contour` (gloss contour) and was lost when writing
31
+ - Added `protected.all` field for "lock all" layer protection flag
32
+ - Added `type` field to gradient color stops using foreground or background color
33
+ - Added `scale` and `angle` fields to pattern stroke and pattern fill layer content
34
+ - Added missing `angle` type on pattern overlay effect, `range` and `antialiased` on bevel effect and `technique` on outer glow effect
35
+ - Fixed writing gradient map layers with interpolation method throwing an error, and interpolation method always reading as `perceptual`
36
+ - Fixed writing layer raw data (`useRawData` option) to a file with different format (PSB to PSD or vice versa, or non-RGB color mode)
37
+ - Fixed crash reading artboard info without background color
38
+ - Fixed lost effects (other than the first) and rounded opacity of animation frames
39
+ - Fixed lost style of empty last paragraph of text layer
40
+ - Fixed reading book (Pantone) colors in descriptors throwing an error (book colors are not supported, they are read as black)
41
+ - Removed hidden properties used to write back original descriptor value types, reference classes and exact color values, values are now always written based on their current data (`GlobalObject`, `GlobalClass` and `UnitFloat` descriptor values are written as `Object`, `Class` and `UnitDouble`)
42
+ - Fixed gradient opacity stops, gradient offsets and HSB hue values changing slightly on round-trip
43
+ - Fixed changing explicit id of other layer when fixing duplicate layer ids
44
+ - Fixed writing `realMask` without `mask` producing empty user mask
45
+ - Fixed reading 16bit RLE compressed brush samples
46
+ - Fixed brushes with transfer dynamics from older Photoshop versions being skipped when reading ABR files (`transfer.wetnessDynamics` and `transfer.mixDynamics` are now optional)
47
+ - Fixed reading empty ABR file throwing `RangeError` instead of `Invalid ABR file` error
48
+ - Fixed reading legacy (non-unicode) UTF-8 alpha channel names that are not valid GBK
49
+ - Fixed empty linked file creator and type being read as `'\0\0\0\0'`
50
+ - Fixed leading BOM being stripped only from long UTF-8 strings
51
+ - Fixed JPEG thumbnails with both JFIF and Adobe markers decoding with wrong colors
52
+ - Fixed malformed patterns and brushes bypassing memory limit
53
+ - Fixed reading files with layers with negative size (now read as empty layers)
54
+ - Fixed composite image transparency marked only by `Mtrn`/`Mt16`/`Mt32` (or by "Transparency" alpha channel name in 16bit documents) being ignored
55
+ - Fixed duplicate layers in 16bit and 32bit documents with both 8bit compatibility layers and `Lr16`/`Lr32` layers
56
+ - Fixed writing `lnk3`, `lnkE`, `pths`, `extd`, `extn`, `FELS` and `artd` in PSB files with 32bit length (Photoshop uses 64bit length), files written by previous versions are still read correctly
57
+ - Fixed glow effect gradient interpolation method being lost
58
+ - Fixed gradient fill and gradient stroke scale and offset being rounded to whole percent when writing
59
+ - Fixed vector stroke without line dash set being lost
60
+ - Fixed faux bold/faux italic (synthetic) variants of the same font being merged when writing text layers
61
+ - Fixed reading photo filter version 3 colors (stored as XYZ, not Lab)
62
+ - Fixed reading pattern transparency, 16bit/32bit patterns and RLE compressed indexed patterns, unsupported or invalid patterns are now skipped instead of removing all following patterns
63
+ - Fixed invalid pattern channel bounds, brush sample sizes and section sizes in ABR files causing huge allocations or hangs
64
+ - Fixed unknown sections (for example tool presets), invalid brushes and samples failing reading of whole ABR file, they are now skipped
65
+ - Fixed ASE files with unknown blocks, unknown color modes or color types, missing color types or non-zero minor version failing to read
66
+ - Fixed frame animations (`imageResources.animations`) being lost when stored in plug-in image resource other than 4000
67
+ - Fixed reading files with 57 channels (56 channels and transparency, written by Photoshop CS3 for 53 alpha channels)
68
+ - Fixed reading files with trailing bytes in image resources section or with image resources section length larger than its data (Photoshop CS2)
69
+ - Fixed layer metadata (timestamp, animation frames, layer comps) being lost for files from Photoshop Elements (`8ELE` signature) and when one of metadata items fails to read
70
+ - Fixed reading stroke effect size stored as number (old Photoshop versions)
71
+ - Fixed display info (`alphaChannelDisplayInfo`) being lost when channel color uses unsupported color space, the color is kept in `rawColor` field
72
+ - Fixed layers with unknown blend mode failing the whole file, they are read with normal blend mode (unless `throwForMissingFeatures` is set)
73
+ - Added support for reading CMYK patterns
74
+ - Added `colorSamplers` (Photoshop 5 color samplers) and `effectsVisible` image resources, obsolete display info resource is read into `alphaChannelDisplayInfo`
75
+ - Added `color` and `id` fields to guides (`gridAndGuidesInformation.guides`)
76
+ - Added `windowsDevMode` (raw printer settings) and `outputSettings` (Save for Web output settings) image resources
77
+ - Frame info plug-in resource is written together with animations, plug-in resources are written with consecutive ids like in Photoshop
78
+ - Added reading of uncompressed (raw RGB) thumbnails
79
+ - Fixed JPEG thumbnails with number of planes other than 1 not being read
80
+
81
+ ## v32.0.0
82
+ - **BREAKING CHANGE:** Mask opacity (`filterMask.opacity`, `userMask.opacity` from `LMsk`, `globalLayerMaskInfo.opacity`) is now read and written using the correct 0-100 scale (Photoshop's default 50% now reads as `0.5` instead of `0.196`)
83
+ - **BREAKING CHANGE:** HSB, CMYK, Lab and Grayscale colors in descriptors (effects, gradients, filters) are now converted to the ranges documented on the `Color` type (HSB `s`/`b` 0-1, CMYK and Gray 0-255, Lab `l` 0-1 and `a`/`b` -1..1)
84
+ - **BREAKING CHANGE:** Gradient stop locations are no longer scaled by gradient smoothness
85
+ - **BREAKING CHANGE:** Text style runs without a font now use the font of the normal style sheet instead of the first font in the font set (usually `AdobeInvisFont`)
86
+ - **BREAKING CHANGE:** Only one trailing newline is removed from text layer text, empty last paragraphs are preserved
87
+ - **BREAKING CHANGE:** Renamed `TextPath.BaselineAlignment` to `baselineAlignment` to match decoded data
88
+ - Fixed decoding 16bit and 32bit RLE compressed image data
89
+ - Fixed reading 16bit and 32bit files modifying input buffer
90
+ - Fixed reading 16bit and 32bit files with transparent composite image
91
+ - Fixed reading composite image with extra alpha/spot channels
92
+ - Fixed reading files with more than 16 channels (up to 56)
93
+ - Fixed reading indexed composite image with raw compression
94
+ - Fixed `getCompositeImageData` for PSB files and files with transparency (added `rawCompositeDataInfo` field to `Psd`, set together with `rawCompositeData`)
95
+ - Fixed writing composite image, layers and patterns with very narrow width (1-2 pixels)
96
+ - Fixed writing masks with both feather parameters producing files that couldn't be read back
97
+ - Fixed layer mask data padding to match Photoshop (padded to multiple of 4 bytes)
98
+ - Layers with animation frames, timeline or layer comps now get generated layer id when writing if `id` field is missing
99
+ - Fixed writing timeline without audio, pattern `linked` field, colored slices, pixel source (video) layers, print proof setup, and some smart filters (perspective warp, oil paint, curves, hsb/hsl)
100
+ - Fixed writing linked files (`lnkE`) producing files that couldn't be read back
101
+ - Fixed negative guide positions
102
+ - Fixed lost or incorrect values on round-trip: channel blending restrictions, filter effect mask extra data, animation frame layer ids, timeline effect keys, pattern overlay angle, grid leading fill color, photo filter Lab color, and several values truncated instead of rounded
103
+ - Fixed reading text annotations with empty or odd-length data
104
+ - Fixed parsing and serializing engine data with `null` values inside arrays and `undefined`/`NaN` values
105
+ - Fixed writing text layers with `FRGB` or `HSB` colors, empty `styleRuns`, CRLF line endings and missing bounds
106
+ - Fixed crashes and infinite loops on malformed files (RLE data, zip data, JPEG thumbnails, layer groups, engine data, brushes)
107
+ - Fixed memory limit not applying to zip-compressed data
108
+ - Reduced memory usage and copying when reading and writing files
109
+
3
110
  ## v31.0.3
4
111
  - Fixed crash when string doesn't contain utf-16 BOM
5
112
 
package/LICENSE CHANGED
@@ -24,3 +24,8 @@ SOFTWARE.
24
24
 
25
25
  Any image or brush files included in this repository are not covered by this
26
26
  license and belong to their copyright holders.
27
+
28
+ CMYK to RGB conversion coefficients in src/psdReader.ts are taken from pdf.js
29
+ (https://github.com/mozilla/pdf.js), Copyright 2012 Mozilla Foundation,
30
+ licensed under the Apache License, Version 2.0
31
+ (http://www.apache.org/licenses/LICENSE-2.0).
package/README.md CHANGED
@@ -9,13 +9,10 @@ Implemented according to [official documentation](https://www.adobe.com/devnet-a
9
9
 
10
10
  ## Limitations
11
11
 
12
- * Does not support reading Indexed, CMYK, Multichannel, Duotone and LAB color modes (all supported color modes are converted to RGB mode when reading)
12
+ * Does not support reading Multichannel, Duotone and LAB color modes (image data of all supported color modes - Bitmap, Grayscale, Indexed, RGB and CMYK - is converted to RGB when reading, CMYK colors are converted using approximation of U.S. Web Coated (SWOP) v2 profile, embedded color profile is not used)
13
13
  * Does not support writing any color modes other than RGB
14
- * Does not support 16 bits per channel
15
- * Does not support The Large Document Format (8BPB/PSB)
16
- * Does not support color palettes
17
- * Does not support animations
18
- * Limited pattern support: reads and writes document-level pattern blocks (`Patt`/`Pat2`/`Pat3`) for raw/RLE-compressed, RGB/Grayscale patterns. Does not support zip-compressed patterns (used by most real Photoshop files), Indexed or 16-bit patterns, or the "Pattern Overlay" layer effect (only its name/id reference is read/written)
14
+ * Does not support writing 16 or 32 bits per channel (reading is supported)
15
+ * Limited pattern support: reads and writes document-level pattern blocks (`Patt`/`Pat2`/`Pat3`) for raw/RLE-compressed RGB/Grayscale patterns and raw Indexed patterns (patterns are always written as RGB). Does not support zip-compressed patterns (used by most real Photoshop files), RLE-compressed Indexed patterns or 16-bit patterns. Pattern references in layer effects and vector fills (such as "Pattern Overlay") only carry pattern name/id and are not linked to pattern data
19
16
  * Does not support some metadata fields
20
17
  * Does not support 3d effects
21
18
  * Does not support some new features from latest versions of Photoshop