paintlib grows and lives through the contributions of many people. Because of this, I have set up a mailing list for discussions about paintlib. You can use this mailing list to ask for help, to submit bug reports and fixes, and to discuss additions to the library. To subscribe to the mailing list, send an empty email to paintlib-subscribe@egroups.com. There is a web interface to the mailing list - including an archive - at http://www.egroups.com/group/paintlib/

Please don't send images or tons of code to the mailing list. If these are relevant, please send them to me first: uzadow@cs.tu-berlin.de.

Contributing Code

paintlib is far from complete. I will implement new features as time permits, but since Ver 1.3 or so, most new features have come from other contributors. (This is really encouraging and probably the reason I still support paintlib).

Contributing code is easy. Just write the code and send it to me (or the mailing list, if it's small). It helps if you follow the coding conventions. If you want to make my job easy, attach the relevant cvs subdirectories and all source files you changed to the mail so I can use cvs to merge the files. Also, you can help me document the library by adding lines starting with //! in front of function headers or class declarations. These lines are recognized by the documentation generation system I use, so they'll appear in the reference section of the docs automatically.

There's one other thing I have to mention because it's caused problems in the past: If you'd like to contribute stuff to paintlib, please make sure it's free of copyrights of other people. To avoid complications, the core paintlib library will need to stay (c) Ulrich von Zadow. I commit to supporting paintlib as open source software for as long as I can, but having parts of the code copyrighted by different people - all of whom I'd have to ask if a word changes in the terms of use - would generate too much hassle. (If you can't live with this arrangement, you can always submit code for inclusion as a sample.)

This is the current todo-list in no particular order:

  • Support more file formats. Support for photoshop files (including loading of several layers as an array of bitmaps) is planned. Other formats? Don't know yet. Gif support is not coming because of licensing restricions.
  • Support for user-defined error and warning handlers.
  • Image file encoding.
  • Integrating color quantization and conversion from 24 to 8 bits.
  • Support for DirectX surfaces.
  • Integration of image-manipulation classes into the library. Besides the bitblt classes in the Windows GUI demo, this would include things like gamma correction, brightness/contrast, sharpening, blurring, accessing photoshop plugins, making coffee, and achieving world peace.

Asking for Help

I welcome emails, and I really try to answer each email. However, there are several things you can do to make my job easier. The first is to send the help request to the mailing list. Sometimes, other people know more about specific areas of the library than me, and in that case, you will probably get a better answer by asking on the list. In addition, a lot of help requests (not all) are completely vague, so all I can do is reply with questions in return because I don't know what the problem is. So if you want a clear answer the first time, please:

  1. tell me what compiler you're using and what system you're compiling paintlib on (including version numbers),
  2. try to compile and link the example programs first,
  3. if you get compiler or linker errors, copy the first few error messages into the mail and
  4. if you get asserts or exceptions, copy the message and the call stack into the mail.

Also, if you can't decode a specific picture, you might want to attach it to a private email to me. Don't do this, however, if it's large(>500 kb), since I pay for download time.

Oh, and try not to ask questions that are answered in the documentation ;-).

Feature Requests and Ideas

The mailing list is the right place for discussions of this sort.