Recently I have been working on a feature that I was planning since long time, but I had no idea how to implement... a pixel cloning tool. Finally, it was not that difficult and the preliminary version is now on GitHub for testing.
You might think that this is not such a great step forward, and that many other programs have a similar tool since long time (gimp, krita, etc...). However, the version implemented into photoflow has the nice feature of being non-destructive.
Practically, this means that pixels are copied on-the-fly when requested, and that they always reflect the up-to-date status of the input data. For example, if you put the cloning tool above a curves layer, the cloned areas will automatically reflect any changes done to the curves adjustment...
Here is the preliminary tool in action:
It still needs a lot of improvements, like feathering the edges of the strokes or adjusting their opacity, but the basic functionality is there and the code is fast enough to be used in real time.
To use the cloning tool, you have to add a new layer and select the "Clone stamp" item in the "misc" tab of the tool selection dialog.
Cloning the pixels works more or less like in GIMP: first you have to ctrl-click on the image to define a source area, and then start drawing to clone the pixels at some other place. With just one minor caveat: in order to avoid drawing accidentally, the tool is "active" only when the corresponding layer is selected and the configuration dialog is opened.
If you feel brave and want to test the new tool, you'll need to update the source code from GitHub and compile it. Any feedback will be really appreciated!