KImageShop Design Document ========================== Matthias Elter me@kde.org Michale Koch m_koch@bigfoot.de last modified: 31. May 1999 Overall design of KImageShop: ----------------------------- KImageShop is based on KOM, the KDE Object Model. All interfaces like import/export filters are implemented as KOM servers. The KImageShop core application is designed to be light-weight and fast. The core application does only handle the image data, layers and basic tools, like the move tool or the selection tools. Everything else is implemented as KOM servers and loaded when needed. There are well defined KOM interfaces for - import filters, - export filters, - image manipulation filters, - and tools. The plugins/filters communicate and register with the base app using the KOM interface. The image manipulation filters work on the image data using shared memory. Additional components like the gradient editor or the screen shot utility are implemented as KOM servers, too. Internal image format: ---------------------- KImageShop will provide several types of color representation. This will include RGB- and CMYK-color representation. Native file format: ------------------- KImageShop comes with it's own XML based file format. We decided to use an XML DTD because it greatly simplifies the implementation of import/export filters. To be compatible with GIMP KImageShop will have import- and export-filters for the GIMP-fileformat. GIMP-Plugin compatibility layer: -------------------------------- With the vast amount of high quality image modification plugins available using the GIMP plugin interface we decided to implement a compatibility layer for using GIMP plugins with KImageShop. We decided against using the GIMP plugin interface as native plugin interface for KImageShop because we feel that a CORBA/KOM based plugin interface is much more powerful and simplifies the implementation of plugins. Scripting: ---------- KImageShop will be full scriptable using the popular scripting language 'Python' available at www.python.org. Planned Tools: -------------- - select rectangual regions - select elliptical regions - freehand select regions - magic pen (select by color) - select using bezier curves - move layers/selections - zoom in/out - crop - text tool - color picker - fill tool (fill with color or pattern) - gradient tool/ editor - pen (line tool) - brush - eraser - airbrush - stamp (paint with patterns) - blur/sharpen tool - undo/redo - printing - merging of layers - layer editor - multiple views of one Document - dithering - color reduction - transparency - working with selection only - save/open layer Basic Classes: -------------- - Document * Image (represents image data) -> ImageRGB -> ImageCMYK * DocumentInfo - Layer - Mask -> LayerMask -> SelectionMask (or RegionMask) - AlphaChannel - Color -> ColorRGB -> ColorCMYK - Tool - Brush - Gradient - Pattern - Filter -> ImportFilter -> ExportFilter -> ManipulationFilter