| Summary: | Krita can not open PSD files with blurred vector masks | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | Ivan Kuckir <ivan.kuckir> |
| Component: | File formats | Assignee: | amyspark <amy> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | amy |
| Priority: | NOR | ||
| Version First Reported In: | 5.1.5 | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | All | ||
| URL: | https://invent.kde.org/graphics/krita/commit/291a841ec2bf72459b2c17b9106c7eafc766037c | ||
| Latest Commit: | https://invent.kde.org/graphics/krita/commit/291a841ec2bf72459b2c17b9106c7eafc766037c | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
| Attachments: | PSD file made in Adobe Photoshop | ||
|
Description
Ivan Kuckir
2023-02-01 23:28:05 UTC
Ack. Assigning. These one have a layer mask record size of 28, so I need to understand first where the changes are, and the GIMP source code isn't easy to read so far. Look into the Adobes docs: https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_22582 (In reply to Ivan Kuckir from comment #3) > Look into the Adobes docs: > https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_22582 Already did, it's a very subtle interpretation of "Layer mask / adjustment layer data" that needs to be changed. Fixed in tomorrow's nightlies. Git commit 48f04b57c926fd464f80f4823e7d956e53303e2e by L. E. Segovia. Committed on 22/04/2023 at 15:23. Pushed by lsegovia into branch 'krita/5.1'. psd: fix interpretation of layer mask/adjustment layer data lengths The standard says: > Size of the data: Check the size and flags to determine what is or is not present. If zero, the following fields are not present Up to 18 bytes can be read safely in this way. After the 2 bytes for padding (if size == 20), the rest of the data is conditional on each flag allowing the data, and the block length allowing the read. (cherry picked from commit 291a841ec2bf72459b2c17b9106c7eafc766037c) M +118 -26 libs/psd/psd_layer_record.cpp https://invent.kde.org/graphics/krita/commit/48f04b57c926fd464f80f4823e7d956e53303e2e Git commit 48f04b57c926fd464f80f4823e7d956e53303e2e by L. E. Segovia. Committed on 22/04/2023 at 15:23. Pushed by lsegovia into branch 'krita/5.1'. psd: fix interpretation of layer mask/adjustment layer data lengths The standard says: > Size of the data: Check the size and flags to determine what is or is not present. If zero, the following fields are not present Up to 18 bytes can be read safely in this way. After the 2 bytes for padding (if size == 20), the rest of the data is conditional on each flag allowing the data, and the block length allowing the read. (cherry picked from commit 291a841ec2bf72459b2c17b9106c7eafc766037c) M +118 -26 libs/psd/psd_layer_record.cpp https://invent.kde.org/graphics/krita/commit/48f04b57c926fd464f80f4823e7d956e53303e2e Git commit 291a841ec2bf72459b2c17b9106c7eafc766037c by L. E. Segovia. Committed on 22/04/2023 at 15:23. Pushed by lsegovia into branch 'master'. psd: fix interpretation of layer mask/adjustment layer data lengths The standard says: > Size of the data: Check the size and flags to determine what is or is not present. If zero, the following fields are not present Up to 18 bytes can be read safely in this way. After the 2 bytes for padding (if size == 20), the rest of the data is conditional on each flag allowing the data, and the block length allowing the read. M +118 -26 libs/psd/psd_layer_record.cpp https://invent.kde.org/graphics/krita/commit/291a841ec2bf72459b2c17b9106c7eafc766037c Git commit 291a841ec2bf72459b2c17b9106c7eafc766037c by L. E. Segovia. Committed on 22/04/2023 at 15:23. Pushed by lsegovia into branch 'master'. psd: fix interpretation of layer mask/adjustment layer data lengths The standard says: > Size of the data: Check the size and flags to determine what is or is not present. If zero, the following fields are not present Up to 18 bytes can be read safely in this way. After the 2 bytes for padding (if size == 20), the rest of the data is conditional on each flag allowing the data, and the block length allowing the read. M +118 -26 libs/psd/psd_layer_record.cpp https://invent.kde.org/graphics/krita/commit/291a841ec2bf72459b2c17b9106c7eafc766037c |