Bug 319908 - Clipboard Brush [Feature Requset]
Summary: Clipboard Brush [Feature Requset]
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Brush engines (show other bugs)
Version: git master (please specify the git hash!)
Platform: Other All
: NOR wishlist
Target Milestone: ---
Assignee: Somsubhra
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-05-16 12:38 UTC by Paul Geraskin
Modified: 2013-05-24 07:28 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Geraskin 2013-05-16 12:38:42 UTC
Hi cool devs!

After the talk with Mifth, Animtim, Bound and others on IRC. I did the feature request about Clipboard Brush. The brush which always use Buffered image. Just press Ctrl+c(copy) any selection and we can use it as a brush. 
Just like in Gimp.  This is the first brush in gimp. Check it out.

Here is my video in Gimp: http://www.youtube.com/watch?v=2nFT-h28AWI

Possibly this brush can be added to the list as Pixel Brush, Duplicate Brush, Filter Brush, Hairy Brush.... 

Thank you.
Comment 1 Halla Rempt 2013-05-16 12:40:44 UTC
Yes, this would be pretty cool and can be done quite generically.
Comment 2 Paul Geraskin 2013-05-16 14:34:52 UTC
Also added video to vimeo https://vimeo.com/66321697
Comment 3 vanyossi 2013-05-16 16:43:06 UTC
This is already kind of implemented, but the feature is bugged.
In "brush tips" go to "Custom brush"

By default it will take the entire image as the image source. If you select an area it will still use the entire image as the brush source but it will only show the area selected. The behavior should be to take the outline only of the selected area.

There are two work around, both are quite clumsy.  But if you need the occasional clipboard brush this works wonders.

1. Select desired a brush preset you wish to use.
2. Copy the area you want for the brush tip and create a new image from clipboard
3. In the new image go to "Custom brush" tips and select "regular" this will set current canvas as brush tip.
4. The new tip is called "temporary custom" in the Predefined brush tip list.
5. Close new image. use new tip and adjust settings.

The other way is to use crop to limit the image outline to the area you need.
1. Crop the image to the brush tip you need.
2. Set a new custom brush, but selecting "regular" as style and pressing "use as brush"
3. Undo crop
4. This also sets a "temporary custom brush" to the predefined brushes. Paint

To set as a preset just go to "Predefined brush" and set "Temporary custom brush" as the tip. Everytime you start krita the brush preset will start with a big "X", but once you set a "Custom brush" (to make the temporary custom brush appear) the red cross will go away.

I don't think adding the feature as a new engine is correct. What would work is to always save the last "Temporary custom brush" so Krita has something to show for the preset (in case temporary brush is set) on startup and keep that predefined brush tip updated with the clipboard without manually going to "custom brush" to do so. If you need the brush more than once, then save as predefined brush.

Also fixing the "Custom brush" to crop only by the selected area as the source of the brush (as  opposed to get the entire image but showing only the selected area) will be preferable.

Have a good day
Comment 4 Paul Geraskin 2013-05-17 08:10:32 UTC
vanyossi, we already talked to Boud and Animtim about it. If you want you can talk to us on IRC about it. 

We the Clipboard Brush just like in Gimp. The Clipboard Brush alwas changes the shape according to memory buffer. Just llike in gimp. As i already said. 
Just open Gimp 2.8 and try it by yourself. The first brush...

I think this feature is needed. All you described works not like it's expected.
Comment 5 Paul Geraskin 2013-05-17 08:16:37 UTC
And this is not implemented!
Comment 6 Paul Geraskin 2013-05-17 10:14:12 UTC
vanyossi ok it seems i was wrong. 
   There is some kind of clipboarding in Krita. Just select any area and go to PixelBrush->CustomBrush. Then you can use pixels from the canvas. 
   The issue is i should switch to Regular/Animated to update CustomBrush buffer.

I did new video to compare Krita and Gimp Clipboarding: https://vimeo.com/66387286

And I found some vital issues in Krita Brush Engine. Krita's brush works more blurry than gimp's one. This makes it unusable in some cases.
Screenshot: http://i.imgur.com/sY4C5ct.png

To fix it possibly we need to make Clipboard Brush? This will be more casual and possibly we can make it more sharpen for the brush.
My suggestion: http://i.imgur.com/IlkfGKk.png
Comment 7 Paul Geraskin 2013-05-17 10:25:31 UTC
Forgot to add my source file: https://dl.dropboxusercontent.com/u/26887202/blender/ee.psd
And added the video on youtube: http://www.youtube.com/watch?v=_luAS-LaLnI&feature=youtu.be
Comment 8 Paul Geraskin 2013-05-17 11:51:38 UTC
I also did a report about a blurry brush. https://bugs.kde.org/show_bug.cgi?id=319944
Comment 9 vanyossi 2013-05-17 15:50:02 UTC
In my opinion this is what could be done to enable the clipboard brush.

1. Add a predefined brush that updates buffer realtime with the clipboard. probably called "A_Clipboard" or something.
In this way we can use the brush in other engines like the smudge, hairy or clone engines.

2. Add a button to the "custom brush" to "refresh", currently the only way to refresh and select the proper brush is to select the combo-box options Regular/animated to make it refresh. This is intended, I imagine, as you might not want to loose the temporary brush just because you opened the tab or copied something to the clipboard.

3.Because of the previous point, it is necessary to leave the default behavior of creating a "Temporary default" brush.
Comment 10 Paul Geraskin 2013-05-18 15:36:53 UTC
vanyossi, i fully agreed with you. 
Just to add to your comments i did the picture:
http://i.imgur.com/GB8EwpO.png

I guess we need also to select either to use all layers or only active layer for  the image buffer. At present only All Layers are supported. Sometimes i need only one Layer/Group.

somsubhra, I hope you are ok. As it was assigned to you. :) Just ask here. :)

Thanks.
Comment 11 Somsubhra 2013-05-18 16:14:23 UTC
I had a suggestion here: Instead of the "Refresh" button we could have a "New Custom Brush" button so that the previous brush remains saved. And for the image buffer to be loaded real-time as the brush tip, we could have a separate Clipboard Brush, which would have this feature i.e we wouldn't need to refresh every time, with the tip reflecting the image buffer at any point of time.
Comment 12 Somsubhra 2013-05-24 07:28:57 UTC
Git commit ab44e2fcaf14386f2c9b2ed77974fed6fb6688dc by Somsubhra Bairi.
Committed on 24/05/2013 at 09:27.
Pushed by somsubhrabairi into branch 'master'.

Added a new Clipboard brush for Krita
REVIEW: [110612]

M  +2    -0    krita/plugins/paintops/libpaintop/CMakeLists.txt
A  +140  -0    krita/plugins/paintops/libpaintop/forms/wdgclipboardbrush.ui
M  +12   -0    krita/plugins/paintops/libpaintop/kis_brush_selection_widget.cpp
M  +5    -1    krita/plugins/paintops/libpaintop/kis_brush_selection_widget.h
A  +163  -0    krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.cpp     [License: GPL (v2+)]
A  +80   -0    krita/plugins/paintops/libpaintop/kis_clipboard_brush_widget.h     [License: GPL (v2+)]
M  +9    -0    krita/ui/kis_clipboard.cc
M  +7    -0    krita/ui/kis_clipboard.h

http://commits.kde.org/calligra/ab44e2fcaf14386f2c9b2ed77974fed6fb6688dc