Summary: | Krita can't open psd files | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Brim <narotix12> |
Component: | File formats | Assignee: | amyspark <amy> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | amy, halla, penguinflyer2222 |
Priority: | NOR | ||
Version: | 5.1.1 | ||
Target Milestone: | --- | ||
Platform: | Microsoft Windows | ||
OS: | Microsoft Windows | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/0dd11393eff866ddb81919a0008ae20bf6ae6c0d | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: | It's the psd file that presents the error |
Description
Brim
2022-09-18 05:13:04 UTC
I can confirm that this file does not load. If I load it in Gimp and save it again, it loads fine, so there is something weird about this file. Which application created this file? The Krita file handling log says: pos: 0 (valid: true, signature: "8BPS", version:1, number of channels: 3, height: 589, width: 968, channel depth: 8, color mode: RGB) Read header. pos: 26 Read color mode block. pos: 30 Image Resource Sectionlength: 0 , starts at: 34 Read 0 Image Resource Blocks Read image resource section. pos: 34 (PSD) reading layer section. Pos: 34 bytes left: 108480 layer block size 54300 Layer info block size 54292 Number of layers: 1 Has separate projection transparency: false Going to read layer 0 pos 44 == Enter PSDLayerRecord Going to read layer record. Pos: 44 top 0 left 0 bottom 589 right 968 number of channels 3 channel 0 id "red" length 18060 start 0 offset 0 channelInfoPosition 0 channel 1 id "green" length 18060 start 0 offset 0 channelInfoPosition 0 channel 2 id "blue" length 18060 start 0 offset 0 channelInfoPosition 0 Blend mode "norm" pos 88 Opacity 255 89 clipping 0 90 flags 8 91 transparency protected false visible true irrelevant false filler at 91 Going to read extra data length 92 Extra data length 56 Going to read extra data field. Bytes available: 108418 pos 96 Read layer mask/adjustment layer data. Length of block: 0 pos 100 Number of blending channels: 0 Going to read layer name at 104 layer name length unpadded 0 pos 105 layer name length padded 3 pos 105 layer name "" 108 About to read additional info blocks at 108 Photoshop signature verification failed! Got: "0000ffff" ( "" ) == Leave PSDLayerRecord Finished reading layer 0 "" blending mode "norm" 108 Number of channels: 3 Going to seek channel positions for layer 0 pos 108 Reading channel image data for channel 0 from pos 108 Channel 0 has compression type 0 start 108 data start 110 data length 18060 pos 110 channel record 0 for layer 0 with id 0 starting position 110 with length 18058 and has compression type 0 Reading channel image data for channel 1 from pos 18168 Channel 1 has compression type 33279 start 18168 data start 18170 data length 18060 pos 18170 channel record 1 for layer 0 with id 1 starting position 18170 with length 18058 and has compression type 33279 Reading channel image data for channel 2 from pos 36228 Channel 2 has compression type 33279 start 36228 data start 36230 data length 18060 pos 36230 channel record 2 for layer 0 with id 2 starting position 36230 with length 18058 and has compression type 33279 Leftover before additional blocks: 54334 54180 Global mask size: 0 ( 54338 54176 ) Position before starting global info section: 54338 Photoshop signature verification failed! Got: "00010010" ( "" ) Read layer/mask section. 1 layers. pos: 54338 Going to read channels for layer 0 "" Reading pixel data for layer "" pos 54338 ERROR: fetchChannelsBytes: "Unsupported Compression mode: 33279" failed reading channels for layer: "" "Unsupported Compression mode: 33279" (In reply to Halla Rempt from comment #1) > I can confirm that this file does not load. If I load it in Gimp and save > it again, it loads fine, so there is something weird about this file. Which > application created this file? > > The Krita file handling log says: > > pos: 0 > (valid: true, signature: "8BPS", version:1, number of channels: 3, height: > 589, width: 968, channel depth: 8, color mode: RGB) > Read header. pos: 26 > Read color mode block. pos: 30 > Image Resource Sectionlength: 0 , starts at: 34 > Read 0 Image Resource Blocks > Read image resource section. pos: 34 > (PSD) reading layer section. Pos: 34 bytes left: 108480 > layer block size 54300 > Layer info block size 54292 > Number of layers: 1 > Has separate projection transparency: false > Going to read layer 0 pos 44 > == Enter PSDLayerRecord > Going to read layer record. Pos: 44 > top 0 left 0 bottom 589 right 968 number of channels 3 > channel 0 id "red" length 18060 start 0 offset 0 channelInfoPosition 0 > channel 1 id "green" length 18060 start 0 offset 0 channelInfoPosition 0 > channel 2 id "blue" length 18060 start 0 offset 0 channelInfoPosition 0 > Blend mode "norm" pos 88 > Opacity 255 89 > clipping 0 90 > flags 8 91 > transparency protected false > visible true > irrelevant false > filler at 91 > Going to read extra data length 92 > Extra data length 56 > Going to read extra data field. Bytes available: 108418 pos 96 > Read layer mask/adjustment layer data. Length of block: 0 pos 100 > Number of blending channels: 0 > Going to read layer name at 104 > layer name length unpadded 0 pos 105 > layer name length padded 3 pos 105 > layer name "" 108 > About to read additional info blocks at 108 > Photoshop signature verification failed! Got: "0000ffff" ( "" ) > == Leave PSDLayerRecord > Finished reading layer 0 "" blending mode "norm" 108 Number of channels: 3 > Going to seek channel positions for layer 0 pos 108 > Reading channel image data for channel 0 from pos 108 > Channel 0 has compression type 0 > start 108 data start 110 data length 18060 pos 110 > channel record 0 for layer 0 with id 0 starting position 110 with length > 18058 and has compression type 0 > Reading channel image data for channel 1 from pos 18168 > Channel 1 has compression type 33279 > start 18168 data start 18170 data length 18060 pos 18170 > channel record 1 for layer 0 with id 1 starting position 18170 with length > 18058 and has compression type 33279 > Reading channel image data for channel 2 from pos 36228 > Channel 2 has compression type 33279 > start 36228 data start 36230 data length 18060 pos 36230 > channel record 2 for layer 0 with id 2 starting position 36230 with length > 18058 and has compression type 33279 > Leftover before additional blocks: 54334 54180 > Global mask size: 0 ( 54338 54176 ) > Position before starting global info section: 54338 > Photoshop signature verification failed! Got: "00010010" ( "" ) > Read layer/mask section. 1 layers. pos: 54338 > Going to read channels for layer 0 "" > Reading pixel data for layer "" pos 54338 > ERROR: fetchChannelsBytes: "Unsupported Compression mode: 33279" > failed reading channels for layer: "" "Unsupported Compression mode: 33279" It came from this site https://kleki.com it's a drawing website, i used to make some sketches and upload as psd in krita before 5.1 and it worked normaly Krita is ignoring 8 bytes of "blendingData" and then trying to read that as the layer name. Changing psd_layer_record.cpp@363 from "if (blendingNchannels > 0) {" to "if (blendingDataLength > 0) {" fixes it. The relevant lines were changed here: https://invent.kde.org/graphics/krita/-/commit/1f8f6593d9e24c942197a2472400eef9e21e85c3 (Saving in GIMP removes the blending data, which is why Krita is then able to open it.) Git commit bb28090652d3839d00e0ef0f80bce8c03fb0b484 by L. E. Segovia. Committed on 19/09/2022 at 21:50. Pushed by lsegovia into branch 'master'. psd: fix reading of layer blending ranges Freya Lupen's comment regarding a bad check was spot on. Let's add some hardening while at it, too. M +24 -14 libs/psd/psd_layer_record.cpp https://invent.kde.org/graphics/krita/commit/bb28090652d3839d00e0ef0f80bce8c03fb0b484 Git commit 0dd11393eff866ddb81919a0008ae20bf6ae6c0d by L. E. Segovia. Committed on 19/09/2022 at 21:51. Pushed by lsegovia into branch 'krita/5.1'. psd: fix reading of layer blending ranges Freya Lupen's comment regarding a bad check was spot on. Let's add some hardening while at it, too. (cherry picked from commit bb28090652d3839d00e0ef0f80bce8c03fb0b484) M +24 -14 libs/psd/psd_layer_record.cpp https://invent.kde.org/graphics/krita/commit/0dd11393eff866ddb81919a0008ae20bf6ae6c0d |