Bug 315367 - Offset Tool [Feature Request]
Summary: Offset Tool [Feature Request]
Alias: None
Product: krita
Classification: Applications
Component: Tools (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR wishlist
Target Milestone: ---
Assignee: LukasT
Depends on:
Reported: 2013-02-18 09:47 UTC by Paul Geraskin
Modified: 2015-02-08 14:11 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Note You need to log in before you can comment on or make changes to this bug.
Description Paul Geraskin 2013-02-18 09:47:58 UTC
Hi cool devs!

I have a feature request about Offset Tool/Filter for making seamless textures. In Gimp(Ctrl+Shift+o) shortcut and PS(filter) has one.

http://i.imgur.com/Gun6XAo.jpg - explanation how the offset tool works. Just need to divide a layer/image to four parts and change their placement.

http://rutube.ru/video/5b43aaedb54bf31cc2ae21a07b2d975e/ - video how offset tool works in Gimp. I also used clone tool to show how easy to create seamless textures.

Forum discussion: http://forum.kde.org/viewtopic.php?f=137&t=109810

Reproducible: Always
Comment 1 LukasT 2013-02-18 17:30:48 UTC
Question is how this should be implemented in Krita.

Nice possibility would be to make this offset operation non-destructive, e.g. store the offset information into layer and render the layer with offset without moving pixels -- new wrap mode could be added to move tool. It is more complicated to implement it this way.

Other easier option is to implement it as destructive filter, which would move pixels.
Much more easier to implement. I will try to implement this easier way in menu Layer -> Offset
Comment 2 Paul Geraskin 2013-02-19 08:09:24 UTC
Wow!!! Thank you Lukas for your attention to this!

Just little remark when you will be making the tool:
The tool should offset the pixels which are on the canvas but not an entire layer. As a layer can be much bigger than canvas of an image.
Here is my explanation: http://i.imgur.com/wmQmdU3.jpg

Or there should be a Checkbox to either offset entire layer or offset only canvas.

Thank you for your work!
Comment 3 LukasT 2013-02-19 09:15:55 UTC
Maybe it would be enough to offset selection with filter?
Comment 4 Paul Geraskin 2013-02-19 10:17:27 UTC
i think it would be cool to stick on canvas size. But if it's easier use selection, so let it's be. :)

Also is it possible to offset all layers? It would be nice feature too.

Comment 5 LukasT 2013-03-02 21:15:51 UTC
Git commit 591cbf5fdb6191fd950a3c2acd79415b6f77536e by Lukáš Tvrdý.
Committed on 02/03/2013 at 22:02.
Pushed by lukast into branch 'master'.

Implement the offset operation for KisPaintDevice

First step to implement offset operation
Next step: integrate using processing framework as layer operation

M  +73   -0    krita/image/kis_transform_worker.cc
M  +9    -0    krita/image/kis_transform_worker.h
M  +38   -0    krita/image/tests/kis_transform_worker_test.cpp
M  +1    -0    krita/image/tests/kis_transform_worker_test.h

Comment 6 LukasT 2013-03-15 21:06:27 UTC
The feature is commited to master

It has problems with transparency mask and it is always wrapped around canvas size no matter what the layer size is
Comment 7 LukasT 2013-03-16 18:51:41 UTC
Git commit 7d824aed3fdc03b93f4717c608a713baeca07f7a by Lukáš Tvrdý.
Committed on 16/03/2013 at 19:39.
Pushed by lukast into branch 'master'.

Respect active selection bounding box as warp rectangle area

M  +20   -13   krita/image/kis_transform_worker.cc
M  +1    -1    krita/image/kis_transform_worker.h
M  +3    -2    krita/image/tests/kis_transform_worker_test.cpp
M  +3    -3    krita/plugins/extensions/offsetimage/dlg_offsetimage.cpp
M  +1    -1    krita/plugins/extensions/offsetimage/dlg_offsetimage.h
M  +1    -1    krita/plugins/extensions/offsetimage/kis_offset_processing_visitor.cpp
M  +21   -3    krita/plugins/extensions/offsetimage/offsetimage.cpp
M  +2    -1    krita/plugins/extensions/offsetimage/offsetimage.h

Comment 8 Halla Rempt 2013-03-31 11:09:46 UTC
Anything else before this bug can be closed?
Comment 9 Halla Rempt 2015-02-08 14:11:06 UTC
Apparently not.