KOffice – TDE office suite
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
5.6KB

  1. * Using littlecms for professional colourmanagement.
  2. Profiles are applied to image data on import, paste, copy, display and
  3. printing to calibrate for particular ways in which image data can
  4. be presented or created. Profiles are associated with a certain
  5. color space and with a device class.
  6. * The following profiles are available in Chalk:
  7. Image profile The image profile is the default profile
  8. for the default color space for the layers
  9. in Chalk
  10. Layer profile Chalk images can have layers of different
  11. color spaces, so each layer can have a
  12. different profile, too.
  13. Display profile When converting the visible part of
  14. an image for displaying on the users monitor,
  15. a monitor calibration profile can be applied
  16. to adjust for display idiosyncrasies.
  17. Import profile On importing an image from disk that does
  18. not have a profile embedded (XXX: embedded
  19. profiles aren't recoginized yet), a screenshot
  20. or a scan, the import profile is attached
  21. to the image.
  22. Output profile On printing, a profile can be applied to the
  23. image to compensate for the printer
  24. idiosyncrasies. XXX: Printing doesn't work
  25. yet at all, and printing is big task that
  26. should be part of KDE. We should simply
  27. convert an image to a tiff file with embedded
  28. profile, and send that to a system printer.
  29. * At the following points we need to handle profiles:
  30. File import Chalk uses ImageMagick to import files.
  31. ImageMagick knows about embedded profiles and
  32. makes them available in memory. We need to
  33. hack our IM builder to convert the in-memory
  34. profile blob to a profile handle.
  35. File export Chalk uses ImageMagick to export files.
  36. Here we need to do the reverse trick; take
  37. a profile handle and get IM to save it with
  38. the file.
  39. Paste from clipboard Two cases: Chalk has placed a clip on the
  40. clipboard, or another application has placed
  41. a clip on the clipboard. Clips are wrapped
  42. in the KisClip class that can be created with
  43. a profile. That can be the profile of the
  44. image Chalk copied the clip from, or the
  45. copy profile set in the Settings, or none.
  46. An external clip is always RGB8 (for now, no
  47. doubt Qt will extend its clipboard once RGB16
  48. images or RGB half images become widespread),
  49. so in those cases we always need an RGB
  50. profile.
  51. Paste from external applications is handled by
  52. the constructor from KisPaintDevice,
  53. internally it might entail a mode conversion.
  54. Copy to clipboard If another application consumes a clip Chalk
  55. has put on the clipboard it can receive the
  56. data as-is, or with a profile applied.
  57. Paste is handled by KisPaintDevice::convertToQImage.
  58. Display on monitor For calibrated displays. This is handled
  59. by KisPaintDevice::convertToQImage()
  60. Image mode conversion A user can either choose to convert an
  61. existing layer or image to another color
  62. model/profile/bit depth or the conversion can
  63. happen automatically, for instance when
  64. painting when the color of a pixel is
  65. converted from KoColor to the color in the
  66. color model.
  67. This is handled by
  68. KisStrategyColorSpace:convertTo().
  69. File loading Chalk's own file format now has a field for
  70. the product name of a profile. We need also to
  71. be able to embed the entire profile into a
  72. Chalk file. That should be easy, since a Chalk
  73. file is just a zipfile.
  74. File saving When loading a Chalk file format image we
  75. should also be able to load embedded profiles.
  76. * Chalk should have a few extra features that are easy to implement
  77. once I a) know what they mean, technically and b) the foregoing is
  78. completed. These are:
  79. Softproofing Showing the image on the monitor with profiles
  80. for printing applied, too.
  81. Out-of-gamut warnign Colours that cannot be printed are shown in
  82. some hideous colour.
  83. Blackpoint compenstion No idea about this...
  84. 8-bit image dither No idea.
  85. ... lcms offers more stuff that I don't know
  86. anything about but which might be interesting.
  87. * External factors play a role. We need a free display calibration
  88. tool for X11, a printing system that takes this stuff into account
  89. and all the rest. That's not part of Chalk, but it needs to be done
  90. some time. XXX: Ask the KGamma developers about this?