Next Previous Contents

8. FAQ

  1. Q 1: I want entries to /etc/magic - used by file(1) to determine file types

    A: Add the following lines to /etc/magic:


            # Paint Shop Pro Image File Format
            # (as per specification from JASC Software http://www.jasc.com/)
            0     string         Paint\ Shop\ Pro\ Image\ File      Paint Shop Pro Image
            # Version information
            >32   leshort        x       (version %u.
            >34   leshort        x       %u)
            # Size as: width x height x bitsperpixel
            >50   lelong         x       %ld
            >54   lelong         x       x %ld
            >69   leshort        x       x %d,
            # Number of layers
            >86   leshort        =1      1 layer
            >86   leshort        >1      %d layers
            # Compression
            >67   leshort        =0      uncompressed
            >67   leshort        =1      RLE
            >67   leshort        =2      LZ77
                  
    

  2. Q 2: Why a library?

    A: I know it is much harder to get a well-defined interface than writing only code for a rather small plugin, but:

    At the moment, the library is only a static one. A shared library will arrive when the read part for the most common features is finished which won't be before 0.2.

  3. Q 3: What types of images can the file format support?

    A: Layered images with up to 64 layers in true-color, gray-scale and indexed (1, 4 and 8 bit) are available. Taking a look at the PSP specs and at what GIMP does support will give in-depth information not available here at the moment.

    Note: The psp-library will not be limited to the 64 layer limit mentioned in the format specification.

  4. Q 4: So in what order will features be implemented?

    A: I have created this list to give some hints, as time goes by and work proceeds this may change a little of course but I think the general direction is clear.

    1. GIMP plugin to read true-color (24 bit) non-layered and layered images without alpha channels - uncompressed and RLE encoded. Recent investigation shows that it should not be difficult to have layer transparency mask and user mask in this version already. Also, grey-scale images are supported. Additional PSP data won't be translated to GIMP data and will be lost by writing to xcf even in GIMP 1.1.
      Task status: Finished.
      Release date: 2nd of March (0.1alpha4).
    2. Support 8 bit indexed images
      Task status: Finished.
      Release date: 4th March (0.1alpha6).
    3. Enhance the plugin to make use of this additional information (if supported by the GIMP): image resolution, active layer, link group, mask linked, mask disabled, invert mask on blend.
      Task status: almost complete.
      Release date: Week beginning March 15 (0.2beta?).
    4. Basic write support for the above
      Task status: Nothing of any use.
      Planned release date: April
    5. Store at least the most essential extra PSP data as GIMP meta-data on read and save it on write.
    6. Support for alpha channels
      Task status: Finished.
      Release date: 11th March (pre0.2beta1).
    7. Support for the Selection Block Task status: Finished.
      Release date: 11th March (pre0.2beta1).
    8. LZ77 support for reading
    9. 4 and 1 bit indexed images
    10. LZ77 support for writing if license makes this possible as Open Source.
    11. Include thumbnail support for the library and the plugin including ability for preview introduced in GIMP 1.1 if possible.
      Task status: Might not be implemented because GIMP preview creates its own thumbnails as separate files (like xv: .xvpics/).

  5. Q 5: What features won't be implemented

    A: First of all, anything not supported by GIMP. Furthermore, there are still some features not documented very well. And some others not used too often...

    1. Picture tubes (nothing like this in GIMP)
    2. Layer link groups (are there groups already in GIMP 1.1?). However, if there is only one group it can be supported.
    3. Invert mask on blend (GIMP doesn't directly support this I guess, but inverting the mask would have the same effect, wouldn't it?)
    4. Blending Ranges (I now have some knowledge about this, but there is no such thing in GIMP). Will be stored as layer parasites sometime later. Could be emulated by directly changing the transparency mask with the caveat that layer reordering gives different results in PSP and GIMP.
    5. A few of the blending modes are not supported by both programs (see Question 6). Emulation with same caveats as for Blending Ranges would be possible. Better solution will be the addition of these modes into GIMP.
    6. LZ77 write compression might not become implemented (gzip - and bzip2 - the file afterwards will do a great job too and is also widely available).

  6. Q 6: Which blending modes will, which ones won't be available?

    A: All blending modes which occur in both programs will be usable. (Assuming that PSPs Luminosity is GIMPs Value there are some that remain unsupported)

    List of GIMP modes not available if saved to a PSP file: Addition, Subtract

    List of PSP modes not available in GIMP: Dodge, Burn, Exclusion, Hard Light, Soft Light.

    Actually, GIMP 1.1 says it knows about Dodge and Burn modes but to me it seems these behave quite different from the PSP implementation (more investigation needed.)

    Unsupported PSP blending modes will be stored as layer parasites (therefore requires GIMP 1.1 to work). GIMP modes not known to PSP will be lost when saving.

    Note: Working on the plugin I noticed different behaviour for some of the blend modes.

  7. Q 7: Where can I get the latest plugin and documentation?

    A: Point your web browser to http://www.xeye.org/. Information about the Paint Shop Pro File Format is also available at http://www.jasc.com/specs/psp.html

  8. Q 8: What are the GIMP parasites that will be used?

    A: I am not finished with a list I will propose to become standard in GIMP but here is a snapshot of my thoughts after replies from the list by Austin Donnelly (general comments) and Andreas Dilger (especially concerning PNG format):

    gimp-comment

    Format: character string
    Support: PSP, PNG, TIFF, GIF and perhaps more
    PSP Creator field: Description
    Comment: The PSP Description field will also include the gimp-description.

    gimp-author

    Format: character string
    Support: PSP, PNG, TIFF and perhaps more
    PSP Creator field: Author

    gimp-title

    Format: character string
    Support: PSP, PNG (TIFF? others?)
    PSP Creator field: Title

    gimp-copyright

    Format: character string
    Support: PSP, PNG (any more?)
    PSP Creator field: Copyright

    gimp-description

    Format: character string
    Support: PSP, PNG (are there other formats?)
    PSP Creator field: Description
    Comment: The PSP Description field will also include the gimp-comment.

    gimp-original-software

    Format: character string
    Support: PSP, PNG (there are more perhaps)
    PSP Creator field: Application ID + Application Version
    Comment: This field will be the hardest to be translated once the PSP format knows more applications because of the conversion of the character string to the ID and Version integers. The PNG spec doesn't tell about a recommended way to format this string so there won't be an easy machine-readable form, but some heuristics could be used.

    gimp-creation-time

    Format: undecided (RFC 1123 compliant character representation? this is the recommended way to store this information in PNG files and has the big advantage of being human readable.)
    Support: PSP, PNG
    PSP Creator field: Creation Date Comment: Complexity of conversion depends on format.

    gimp-modification-time

    Comment: Not yet decided if this field is really useful and will be exported.

    Note: All character strings are represented in the ISO 8859-1 (Latin 1) character set.

    Note 2: Information not automatically translatable could be appended to the description. The same could be done with other descriptive fields (known to PNG and perhaps other file formats).


Next Previous Contents