I emailed Corel tech support, they said it didn't exist - probably correct
Location of file-format specifications for PSP X8?
Moderator: Kathy_9
-
crawford
- Posts: 11
- Joined: Mon Jun 27, 2016 2:42 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- ram: 4GB
- Corel programs: PSP X7
- Location: East coast USA
Location of file-format specifications for PSP X8?
Hi, I'm trying to find the file-format specifications for X8 .psp files, because I'm writing some Python code to pull data out of the psp files. I have found ftp://ftp.corel.com/pub/documentation/PSP/, which contains information for some older versions (PSP 6, etc), but nothing for the latest version.
I emailed Corel tech support, they said it didn't exist - probably correct
but I'm hoping it might be somewhere. Thanks for any help.
I emailed Corel tech support, they said it didn't exist - probably correct
-
LeviFiction
- Advisor
- Posts: 6831
- Joined: Thu Oct 02, 2008 1:07 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- motherboard: Alienware M17xR4
- processor: Intel Core i7-3630QM CPU - 2_40GH
- ram: 6 GB
- Video Card: NVIDIA GeForce GTX 660M
- sound_card: Sound Blaster Recon3Di
- Hard_Drive_Capacity: 500GB
- Corel programs: PSP: 8-2023
- Location: USA
Re: Location of file-format specifications for PSP X8?
Nope, doesn't exist. I've looked for years. I wanted to be able to create scripts that would grab the data from the clipboard and allow me to manipulate it before saving i back in a format PSP can handle. I still can, obviously, with the PSP8 fileformat. But I had hoped to be able to get at the more modern stuff.
https://levifiction.wordpress.com/
-
crawford
- Posts: 11
- Joined: Mon Jun 27, 2016 2:42 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- ram: 4GB
- Corel programs: PSP X7
- Location: East coast USA
Re: Location of file-format specifications for PSP X8?
Thanks. I was afraid of that...
Another question, though, since you've worked with the files - have you ever tried reading an X8 .psp file? I'm wondering if the basic blocks (layers, alpha masks, etc) are at least somewhat similar? If all they did was add new block types (as it looks like 6->7 did), then I could get the data I want from an X8 file. If, as is more likely, they totally borked the new format, then guess that plan is out. 
-
LeviFiction
- Advisor
- Posts: 6831
- Joined: Thu Oct 02, 2008 1:07 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- motherboard: Alienware M17xR4
- processor: Intel Core i7-3630QM CPU - 2_40GH
- ram: 6 GB
- Video Card: NVIDIA GeForce GTX 660M
- sound_card: Sound Blaster Recon3Di
- Hard_Drive_Capacity: 500GB
- Corel programs: PSP: 8-2023
- Location: USA
Re: Location of file-format specifications for PSP X8?
I haven't tried, no. Sorry, though I had often wondered if it was. I haven't worked very long on it though, I say "years" but it's more like whenever I've thought to try again. Which unfortunately I have a hard time keeping track of how long it's been between attempts. I keep messing something up in my attempts to read the file, I pull the wrong kind of data or I'm misunderstanding what kinds of data to read. I get frustrated, decide to put it off for another day, next thing I know it's months later.
So I'm the least helpful in that regard.
https://levifiction.wordpress.com/
-
crawford
- Posts: 11
- Joined: Mon Jun 27, 2016 2:42 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- ram: 4GB
- Corel programs: PSP X7
- Location: East coast USA
Re: Location of file-format specifications for PSP X8?
Heh - I know the feeling, I've been working on my project off-and-on for a while also. Decided I finally need to finish it - unfortunately, not only do I not have the specs for X8, I don't own a copy of the program (I'm using a really old version), so can't easily test the new file-format.
I'd really appreciate it if you, or someone else reading the thread, could help me test the new files, by converting some old-format files I have to the new format. I've uploaded two sample files to Dropbox: file_1 and file_2. (And if you wanted to be really helpful,
maybe create a third file from scratch, just in case the conversion is using some kind of compatibility mode instead of writing using the latest X8 format).
What I want to do, is create a pull-request to add the .psp file format to the Python Pillow package, so it would at least be able to read various data from PSP files, convert to bitmaps and more importantly, create PNG files with alpha-channel masks. I've got code working for a really old version (PSP 6), but if I can't get it to work with the latest file-format, not sure it's worth doing a pull-request just for the older version.
It's possible that Corel uses the same basic structure for its newer formats, and just adds new features in new blocks, in which case the code should work already. Of course, it's also possible they completed revised the format, and nothing's compatible
I'm hoping it's the first case
John C>
I'd really appreciate it if you, or someone else reading the thread, could help me test the new files, by converting some old-format files I have to the new format. I've uploaded two sample files to Dropbox: file_1 and file_2. (And if you wanted to be really helpful,
What I want to do, is create a pull-request to add the .psp file format to the Python Pillow package, so it would at least be able to read various data from PSP files, convert to bitmaps and more importantly, create PNG files with alpha-channel masks. I've got code working for a really old version (PSP 6), but if I can't get it to work with the latest file-format, not sure it's worth doing a pull-request just for the older version.
It's possible that Corel uses the same basic structure for its newer formats, and just adds new features in new blocks, in which case the code should work already. Of course, it's also possible they completed revised the format, and nothing's compatible
John C>
-
LeviFiction
- Advisor
- Posts: 6831
- Joined: Thu Oct 02, 2008 1:07 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- motherboard: Alienware M17xR4
- processor: Intel Core i7-3630QM CPU - 2_40GH
- ram: 6 GB
- Video Card: NVIDIA GeForce GTX 660M
- sound_card: Sound Blaster Recon3Di
- Hard_Drive_Capacity: 500GB
- Corel programs: PSP: 8-2023
- Location: USA
Re: Location of file-format specifications for PSP X8?
Here is a Google Drive folder with the converted files
https://drive.google.com/open?id=0B8FlF ... 3lJUFJFeGs
Image3.pspimage is just a white background layer with a layergroup, mask, and raster layer. If you need something more specific or less specific let me know.
https://drive.google.com/open?id=0B8FlF ... 3lJUFJFeGs
Image3.pspimage is just a white background layer with a layergroup, mask, and raster layer. If you need something more specific or less specific let me know.
https://levifiction.wordpress.com/
-
crawford
- Posts: 11
- Joined: Mon Jun 27, 2016 2:42 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- ram: 4GB
- Corel programs: PSP X7
- Location: East coast USA
Re: Location of file-format specifications for PSP X8?
Thanks, I appreciate it. I've downloaded them, and tried them out. My code is breaking, unfortunately, but can't tell yet if it's just some minor thing I'm not handling correctly, or a major change that breaks everything. 
-
crawford
- Posts: 11
- Joined: Mon Jun 27, 2016 2:42 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- ram: 4GB
- Corel programs: PSP X7
- Location: East coast USA
Re: Location of file-format specifications for PSP X8?
Wups, one thing I didn't think of - there are several options when saving files involving compression, etc. I don't yet have RLE/LZ77 compression working - would you mind saving another set, and in the Options button, select "no compression"? Sorry I didn't notice that before. 
(It's probably not what's breaking, but one less variable to deal with...)
Also, I'm curious if there are other save-options, like for older versions? I suspect not, but never know.
John C>
(It's probably not what's breaking, but one less variable to deal with...)
Also, I'm curious if there are other save-options, like for older versions? I suspect not, but never know.
John C>
-
LeviFiction
- Advisor
- Posts: 6831
- Joined: Thu Oct 02, 2008 1:07 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- motherboard: Alienware M17xR4
- processor: Intel Core i7-3630QM CPU - 2_40GH
- ram: 6 GB
- Video Card: NVIDIA GeForce GTX 660M
- sound_card: Sound Blaster Recon3Di
- Hard_Drive_Capacity: 500GB
- Corel programs: PSP: 8-2023
- Location: USA
Re: Location of file-format specifications for PSP X8?
I've uploaded the No compression versions to the same folder.
The options are for compression, compatability, and including the ICC profiles.
Compatability formats available in X8 are:
PSP5
PSP6
PSP7
PSP8
PSP9
PSPX
PSPXI
PSPX2
PSPX3
PSPX4 - PSPX7 (these three versions all use the same format)
PSPX8
The options are for compression, compatability, and including the ICC profiles.
Compatability formats available in X8 are:
PSP5
PSP6
PSP7
PSP8
PSP9
PSPX
PSPXI
PSPX2
PSPX3
PSPX4 - PSPX7 (these three versions all use the same format)
PSPX8
https://levifiction.wordpress.com/
-
crawford
- Posts: 11
- Joined: Mon Jun 27, 2016 2:42 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- ram: 4GB
- Corel programs: PSP X7
- Location: East coast USA
Re: Location of file-format specifications for PSP X8?
That's interesting, and a bit surprising that they include that much backwards-compatibility.
Can I bug you for one more version?
The latest specs I've been able to find are PSPX - at least I think that's it. Docs say:
Many thanks.
John C>
Can I bug you for one more version?
If that's actually PSPX, and I can get the code to read it, would be fairly close to X8. People (who wanted to use the Pillow library) would still have to save back to that version, which is somewhat of a pain, but at least it would be workable.September, 2005
Paint Shop Pro (PSP) File Format Version 8.0
Paint Shop Pro Application Version 10.0
Many thanks.
John C>
-
LeviFiction
- Advisor
- Posts: 6831
- Joined: Thu Oct 02, 2008 1:07 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- motherboard: Alienware M17xR4
- processor: Intel Core i7-3630QM CPU - 2_40GH
- ram: 6 GB
- Video Card: NVIDIA GeForce GTX 660M
- sound_card: Sound Blaster Recon3Di
- Hard_Drive_Capacity: 500GB
- Corel programs: PSP: 8-2023
- Location: USA
Re: Location of file-format specifications for PSP X8?
Alright, updated the folder with PSPX versions as well.
Don't know if it helps or not, probably not. I ran both the PSPX8 version and the PSPX version through the HxD hex editor and ran a file comparison. There were subtle differences at first, then the PSPX8 version had a full empty block before continuing on to match the PSPX version (offset by one big block of values) at that point continuing to run comparisons was difficult as I had to compare them offset from each other. But they looked close, so the idea that PSPX8 includes unknown blocks while having a similar base might be accurate.
Don't know if it helps or not, probably not. I ran both the PSPX8 version and the PSPX version through the HxD hex editor and ran a file comparison. There were subtle differences at first, then the PSPX8 version had a full empty block before continuing on to match the PSPX version (offset by one big block of values) at that point continuing to run comparisons was difficult as I had to compare them offset from each other. But they looked close, so the idea that PSPX8 includes unknown blocks while having a similar base might be accurate.
https://levifiction.wordpress.com/
-
crawford
- Posts: 11
- Joined: Mon Jun 27, 2016 2:42 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- ram: 4GB
- Corel programs: PSP X7
- Location: East coast USA
Re: Location of file-format specifications for PSP X8?
Well, it's surprisingly close - got a 50% success rate, anyway.
After modifying the code for the changed blocks, I was able to read one of the two files:
Now if I can just figure out what's breaking in the other picture.
Thanks again for the help.
John C>
Code: Select all
Image File [/home/crawford/Projects/PSP_Scan/PSPX_layers_04_256.pspimage]: 623007 bytes
File Version = [8.0]
Block[PSP_IMAGE_BLOCK]: 46 bytes
total_image_size: 1376256
plane_count: 1
color_count: 16777216
active_layer: 0
image_width: 256
bit_depth: 24
image_height: 256
greyscale_flag: 0
chunk_size: 46
layer_count: 7
compression_type: 0
Block[PSP_COLORPROFILE_BLOCK]: 3178 bytes
Block[PSP_EXTENDED_DATA_BLOCK]: 24 bytes
Block[PSP_CREATOR_BLOCK]: 56 bytes
Block[PSP_COMPOSITE_IMAGE_BANK]: 210002 bytes
Block[PSP_LAYER_START_BLOCK]: 409605 bytes
Block[PSP_LAYER_BLOCK]: Layer: type = keGLTRaster, bytes = 196830, name = [Background], channels = [3]
Bitmap[65536 pixels]: [(128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255), (128, 128, 255)]
Image Rect: topleft = (0, 0), bottomright = (256, 256)
SavedImage Rect: topleft = (0, 0), bottomright = (256, 256)
SavedImage Rect width/height = 256/256
Mask Rect: topleft = (0, 0), bottomright = (0, 0)
SavedMask Rect: topleft = (0, 0), bottomright = (0, 0)
SavedMask Rect width/height = 0/0
Block[PSP_CHANNEL_BLOCK]: 65536 bytes. Channel = [0]. Compression type = PSP_COMP_NONE, Bitmap type = PSP_DIB_IMAGE, Channel type = PSP_CHANNEL_RED
[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]
80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:8
Block[PSP_CHANNEL_BLOCK]: 65536 bytes. Channel = [1]. Compression type = PSP_COMP_NONE, Bitmap type = PSP_DIB_IMAGE, Channel type = PSP_CHANNEL_GREEN
[128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]
80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:80:8
Block[PSP_CHANNEL_BLOCK]: 65536 bytes. Channel = [2]. Compression type = PSP_COMP_NONE, Bitmap type = PSP_DIB_IMAGE, Channel type = PSP_CHANNEL_BLUE
[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]
FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:F
Block[PSP_LAYER_BLOCK]: Layer: type = keGLTRaster, bytes = 38330, name = [layer_1_blue], channels = [4]
...
John C>
-
crawford
- Posts: 11
- Joined: Mon Jun 27, 2016 2:42 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- ram: 4GB
- Corel programs: PSP X7
- Location: East coast USA
Re: Location of file-format specifications for PSP X8?
If anyone's interested in playing alpha-tester for a PSP library
I finally finished the Python library I was working on to scan PSP files. It's currently in alpha, seems to work for me, but I'm sure there's bugs. Also has a fair number of constraints - for instance, have to File->Save-As version X, since that's the last version I can find documentation on.
It's published on PyPi, so can be installed with pip:
https://pypi.python.org/pypi/psp-scan
Wiki page with install/usage documentation:
https://github.com/CrawfishPress/psp_scan/wiki
Looking forward to the brutal feedback. (okay, not really, however any feedback is appreciated).
John C>
It's published on PyPi, so can be installed with pip:
https://pypi.python.org/pypi/psp-scan
Wiki page with install/usage documentation:
https://github.com/CrawfishPress/psp_scan/wiki
Looking forward to the brutal feedback. (okay, not really, however any feedback is appreciated).
John C>
-
Radim
- Posts: 712
- Joined: Mon Nov 01, 2010 5:54 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- ram: 4GB
- Monitor/Display Make & Model: 27 inch
Re: Location of file-format specifications for PSP X8?
And what format of X9, we have a new tool - "live" gradients.. 
-
LeviFiction
- Advisor
- Posts: 6831
- Joined: Thu Oct 02, 2008 1:07 pm
- System_Drive: C
- 32bit or 64bit: 64 Bit
- motherboard: Alienware M17xR4
- processor: Intel Core i7-3630QM CPU - 2_40GH
- ram: 6 GB
- Video Card: NVIDIA GeForce GTX 660M
- sound_card: Sound Blaster Recon3Di
- Hard_Drive_Capacity: 500GB
- Corel programs: PSP: 8-2023
- Location: USA
Re: Location of file-format specifications for PSP X8?
The new tool would not effect anything. The Gradient Fill tool only interactively fills a layer or selection or object with a gradient. Once the gradient is applied it's no different than any other gradient applied with the regular fill tool. So you lose no functionality saving to an older format. Now, text wrapping is different and does affect the file format.
As crawford said, this code presented here only supports version X(10) file format because that's the last file format that has official documentation. To support later formats their newest features and items would have to be reverse engineered. It's why a lot of 3rd party tools only support PSP file formats up to version 9.
As crawford said, this code presented here only supports version X(10) file format because that's the last file format that has official documentation. To support later formats their newest features and items would have to be reverse engineered. It's why a lot of 3rd party tools only support PSP file formats up to version 9.
https://levifiction.wordpress.com/
