|
|
PaintLab
By Jonas Beckeman jonas at jobe dot nu
PaintLab is an experimental C# paint application built on
OpenBlackBox.
Project initiated 2006-04-16
Last update: 2006-07-07

Some current features
* Almost everything is based on nodes / graphs - from the layers composition engine,
to filters, effects / adjustment layers and the tools
* Photoshop-like GUI (this actually limits the possibilities of PaintLab, but it's
necessary for users to get into the program quickly)
* GPU accelerated (broken at the moment)
* Multiple Document Interface
* Expandable tool buttons à la Photoshop
* Plugin structure for... everything
* Multiple color space colorpicker (Currently RGB, HSB, HSL, HWB, XYZ, L*a*b. Plugin
color spaces are automatically available to it)
* GUI separated from function, for easier porting to other platforms (and so I soon
can get rid of those horrible WinForms and use WPF)
* Reads PSD, TIF, JPG, BMP, GIF, PNG, ICO files, and PAL, ACO, ACT and Painter palette files.
Future features
* Full read+write PSD, SWF, PDF, XAML
* Vector graphics + text processing with AGG for quality
and performance superior to GDI+
* Better node graph editor, like
FilterForge, for facilitating procedural texture generation and advanced
batching
* Lots and lots of tools, filters, adjustment layers, effects
* Natural brushes
* Runtime filter scripting with Boo
About the current release
This is in no way a finished product - in fact, it's not even in the alpha stage.
I'm currently focusing on overall architecture and interfaces, rather than error
handling, bugs and unexpected behavior. I have spent very little time on optimizations,
so the program is pretty sluggish.
A few things to be aware of:
* The sharpen brush is very sharp. Set the brush pressure to < 5 to get acceptable
results
* Adjustment layers can make the document *very* slow to work with. The engine can
be optimized a lot here, but that will have to wait until I've made some final decisions
about the architecture. I also haven't implemented any preview yet - every change
is applied directly to the document - so changing values in the settings box can
be a horrible experience.
* Selection tools are merely drawing tools that work on a dedicated Floating Selection
layer. The Selection layer is an alpha bitmap that can be modified, filtered, and
drawn to just like a normal layer, and so Selection->Expand/Feather/etc can be
implemented as simple bitmap operations. All good so far, but ATM the selection
isn't actually used in the rest of the program...
* Several items in the Brush Designer aren't implemented (Size, Spacing, Save)
Download
Prerequirements:
.NET 2.0
(To run with GPU acceleration:
Managed DirectX SDK)
PaintLab 2006-07-07
The current release is ugly and pretty unstable. I have a huge todo-list already,
so please - no feature requests or bug reports on minor functions!
Source for the underlying technologies:
Endogine
OpenBlackBox
Changes
2006-07-07
* All Photoshop CS1 blend modes implemented
* Effect/adjustment layers
* Filters, with preview dialog
* Automatic filter GUI (somewhat similar to .NET's PropertyGrid)
* Blur, sharpen, smudge brushes
* Selection tools + Floating selection layer implemented
* Fixed crashes when switching between documents
* Load / save bmp/png/jpg/tif/gif/ico
* Drag'n'drop files to the application
* Automatically populates the Filter and Effect layers menus with all boxes that
implement the ICanvasInOut interface
* Menu items that aren't implemented are automatically grayed out
How to's
Adjustment layers
To add an adjustment layer, click the leftmost button in the Layers dialog:
|
|
 |
|
Then rightclick and select Settings: |
|
|
 |
|
|
|
|
|
|
|
|
|
And the filter settings dialog comes up. The little boxes on the right side of the
textboxes are sliders: |
|
|
|
 |
 |
|