Since the image editing support is integrated with the image display support, it is relatively easy to refresh display windows with lists of edit instructions, or to modify 2-dimensional arrays with the same edit instructions. Also, because of the integration with the network support, when edit instructions are added to a list, they are automatically forwarded to communicating modules as well. No extra code is required to take advantage of the networking support. An example commercial application developed with the image editing and image display support is a shared image editing application. In this application, all users are able to view and edit the same image with a defined set of brushstrokes, dabs, polygons, etc.
All users see the same image with the same set of edits.
This is due to the way edit instructions are distributed and displayed. The image edit support provided in the Karma library can save thousands of lines of messy, intricate code. Architecture The image editing support in Karma is built on a layered approach, in a similar way to the communications support. The image editing support requires linking of the core Karma library and the Karma graphics library. The various packages in the Karma library which provide communications support are listed below.