GSoC/2021/StatusReports/Sachinjindal: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2021‎ | StatusReports
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
== '''Reference Images Improvement''' ==  
== '''Reference Images Improvement''' ==  
Reference Image Tool in Krita aid artists to draw seamlessly with photo referencing. This project aims to improve the tool to include some  additional features that will be helpful to the artists .. With the addition of new features, Reference Image Tool will be more interactive and easier to use.
Krita is a professional FREE and open source painting program.
 
This project aims to improve the reference image tool in Krita to include some  additional features that will be helpful to the artists drawing with photo-referencing.With the addition of this new features, the tool & reference images will be more interactive and easier to use in Krita.
=== '''Mentors''' ===
 
[https://invent.kde.org/woltherav Wolthera van Hövell ]
 
[https://invent.kde.org/tymond Agata Cacko (tiar)]
 
[https://invent.kde.org/rempt Halla Rempt]


=== '''Project Goals''' ===
=== '''Project Goals''' ===
Line 19: Line 12:
* Update & sync the reference image.
* Update & sync the reference image.
** Status: '''DONE'''
** Status: '''DONE'''
=== '''Mentors''' ===
[https://invent.kde.org/woltherav Wolthera van Hövell ]
[https://invent.kde.org/tymond Agata Cacko (tiar)]
[https://invent.kde.org/rempt Halla Rempt]


=== Links ===
=== Links ===
Line 29: Line 30:


=== '''Work Report''' ===
=== '''Work Report''' ===
==== Pin Reference Images ====
=== Pin Reference Images ===


Goal of this feature is to provide an option to apply the canvas modifications to reference images based on the option selected in the Tool widget. This is implemented with four options position, zoom, rotate & mirror to allow them to be manipulated with canvas or image modifications .
Goal of this feature is to provide an option to apply the canvas modifications to reference images based on the option selected in the Tool widget. This is implemented with four options position, zoom, rotate & mirror to allow them to be manipulated with canvas or image modifications .
Line 39: Line 40:
[[File:Pin.jpg|Pinned images, Un-Pinned images]]
[[File:Pin.jpg|Pinned images, Un-Pinned images]]


==== Integrate Crop ====
=== Integrate Crop ===


This feature allows the reference images to be Cropped inside the Tool like the Crop Tool . Crop rectangle can be easily modified with the handles on the images and the sliders in the Tool box . The final crop action is in-destructible so the images is not lost and can be restored later on easily with the undo as well.  
This feature allows the reference images to be Cropped inside the Tool like the Crop Tool . Crop rectangle can be easily modified with the handles on the images and the sliders in the Tool box . So both are interconnected as well.  The final crop action is in-destructible so the image is updated with original image and can be cropped differently again .


Bug Request : [https://bugs.kde.org/show_bug.cgi?id=399061 Link]
Bug Request : [https://bugs.kde.org/show_bug.cgi?id=399061 Link]


Here is the widget with all the necessary new options added.


[[File:UI.png|Tool Options]]
[[File:Screenshot 20210818 152720.png|thumb]]


=== Sync Reference Images ===
=== Sync Reference Images ===
Line 54: Line 54:
This is shown in the last part of the demo video in which the yellow line is shown in the reference images.
This is shown in the last part of the demo video in which the yellow line is shown in the reference images.


=== Future Deliverables ===
=== What's left ===
Though the Project is complete and a great summer has come to an end but I will keep contributing and adding more features and bug fixes to the Reference Images in Krita.
Documentation for the added features in Krita Manual and some minor code-style updates from the mentors code reviews.
 
==== Important Commits ====
[https://invent.kde.org/graphics/krita/-/merge_requests/901/diffs?commit_id=643515b844088b0899e3ee20cfe80eb217239dc3 Add Pin/ Unpin options for reference images]
 
[https://invent.kde.org/graphics/krita/-/merge_requests/901/diffs?commit_id=ecf0c5045fd6028fd5abd77ea4201d6ca82e81e0 Fix Zoom position & Polish the UI]
 
[https://invent.kde.org/graphics/krita/-/merge_requests/901/diffs?commit_id=b00922e4b9d5cc735bf91cce90f457ade5fbaff2 Add Pin/unpin for Zoom]
 
[https://invent.kde.org/graphics/krita/-/merge_requests/901/diffs?commit_id=c296d7fa58ad50e230bf438a35ae88efecfb8823 Add crop options in RI widget]
 
[https://invent.kde.org/graphics/krita/-/merge_requests/901/diffs?commit_id=65ca4baac813ad1666cb3ebde1a295bc1d723e69 Implement decorations for Crop bounds]
 
[https://invent.kde.org/graphics/krita/-/merge_requests/901/diffs?commit_id=643df46b7da28390bdee6dc212f0bf13109ff71d Add a command to Crop image]
 
[https://invent.kde.org/graphics/krita/-/merge_requests/901/diffs?commit_id=668944a4955cce7837cd629b1db22f7eeefcd5c5 Use mergeWith() to avoid adding same commands]
 
[https://invent.kde.org/graphics/krita/-/merge_requests/901/diffs?commit_id=110bc653b2c19a0b38ca826dc27bf4edc555ec27 Refactor FileSytemWatcherWrapper in KisSafeDocumentLoader]
 
[https://invent.kde.org/graphics/krita/-/merge_requests/901/diffs?commit_id=2784bb19c0adf6085d0b3c76e8f81f9d0d755fff Reload & update the image]


== Blogs ==
== Blogs ==
* [https://jindalsachin.github.io/GSoC-with-Krita/ here]
* [https://jindalsachin.github.io/GSoC-with-Krita/ Introduction]
* [https://jindalsachin.github.io/Week-1-&-2-GSoc/ Week-1 & 2]
* [https://jindalsachin.github.io/Phase-1/ Phase-1]
* [https://jindalsachin.github.io/Phase-1/ Phase-1]

Latest revision as of 11:06, 23 August 2021

Reference Images Improvement

Krita is a professional FREE and open source painting program. This project aims to improve the reference image tool in Krita to include some additional features that will be helpful to the artists drawing with photo-referencing.With the addition of this new features, the tool & reference images will be more interactive and easier to use in Krita.

Project Goals

  • Pin Reference Image to canvas.
    • Status: DONE
  • Integrate Crop.
    • Status: DONE
  • Update & sync the reference image.
    • Status: DONE

Mentors

Wolthera van Hövell

Agata Cacko (tiar)

Halla Rempt

Links

Merge Request

Phabricator

Short Video

Work Report

Pin Reference Images

Goal of this feature is to provide an option to apply the canvas modifications to reference images based on the option selected in the Tool widget. This is implemented with four options position, zoom, rotate & mirror to allow them to be manipulated with canvas or image modifications .

Bug Request : Link

This is a great mock-up of this feature from Bugzilla.

Pinned images, Un-Pinned images

Integrate Crop

This feature allows the reference images to be Cropped inside the Tool like the Crop Tool . Crop rectangle can be easily modified with the handles on the images and the sliders in the Tool box . So both are interconnected as well. The final crop action is in-destructible so the image is updated with original image and can be cropped differently again .

Bug Request : Link


Sync Reference Images

This feature updates the image with latest modifications . Since references are not meant to be modified , but they can be modified like other files in Krita and uploaded with any rectifications . So this will keep track of any modifications done to them and uploads it correctly . This is done via QFileSystemWatcher class and this functionality exists in Krita for some layers already .

This is shown in the last part of the demo video in which the yellow line is shown in the reference images.

What's left

Documentation for the added features in Krita Manual and some minor code-style updates from the mentors code reviews.

Important Commits

Add Pin/ Unpin options for reference images

Fix Zoom position & Polish the UI

Add Pin/unpin for Zoom

Add crop options in RI widget

Implement decorations for Crop bounds

Add a command to Crop image

Use mergeWith() to avoid adding same commands

Refactor FileSytemWatcherWrapper in KisSafeDocumentLoader

Reload & update the image

Blogs