Bug 360233 - Import Images as Frames
Summary: Import Images as Frames
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Animation (show other bugs)
Version: 2.9.10
Platform: Mint (Ubuntu based) Linux
: NOR wishlist
Target Milestone: ---
Assignee: Krita Bugs
URL: https://unclesnail.artstation.com/kri...
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-07 23:26 UTC by Uncle Snail
Modified: 2016-10-24 17:36 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Uncle Snail 2016-03-07 23:26:07 UTC
An "Import Images as Frames" feature would greatly improve the Krita animation workflow.
It would allow you to import images as frames on a new or existing layer.This is useful for drawing on frames from a 3D application, video footage, or for taking in images from other programs, or previous projects.
The bare necessities are a button that will import images as frames on a given layer.

Here is a list of some of the possible features, with a short explanation.
Keep Alpha Channel: Keeps the alpha channel on the images when they are imported.
Auto Calculate Frames: This bases the frame to which images are imported on any numbers in the image name.
Auto Animation Length: This feature will automatically lengthen the animation to accommodate any new frames.
Manual Animation Length: Manually set a new animation length. [This feature is greyed out if "Auto Animation Length" is checked.]
Starting Frame: This is where the first frame will be placed.Frame Step: This is how many frames apart each new frame will be place. [A value of 1 means frames are placed consecutively.]
New Animation Length: Sets a new animation length manually (to accommodate the added frames). [This feature is greyed out if "Auto Animation Length" is checked.]
Name: The name of the layer on which the frames will be placed. [This is only available if placing the frames on a new layer. It will be the name of that new layer.]

These features only apply if you are importing to an already existing layer.
Frames to Selected Layer: This will add the frames to the currently selected layer.
Skip Existing Frames: This places the images only on 
frame slots that do not currently have a information on them. It skips 
existing frames, and resumes with the next empty frame.
Replace Existing Frames: This feature will override all existing frames.
Blending Mode: Select a blending mode with which to mix the images with any current data on the selected layer. [This only applies if "Skip Existing Frames", "Replace Existing Frames", and "Import to New Layer" are all unchecked.]
Preview: Shows a preview of how the new frames will look. [This is most applicable if using blending modes. However, it can help get a picture of how the images are scaling.]

For visual examples, and easier reading of ideas/details, please visit the link given.

Reproducible: Always

Steps to Reproduce:
1. Click "Import Images as Frames"
2. Choose your settings
3. Click "OK"

Actual Results:  
This feature does not exist... I could not get my images onto individual frames of the same layer due to many difficulties, and it takes far too long using the current method, because merging a floated layer onto a single frame of animation is not supported. Even if it were, it would take far too long for a lot of frames.

Expected Results:  
This will greatly speed things up, and remove much headache.

Possible added options and ideas.
A "Uniform Scale" button: If importing multiple images with different sizes, and the scale image feature selected, this could come in handy. It would take the largest image size, scale that to fit the image size, then scale the rest of the images by the same multiple, even if they end up smaller than the image size.
A "Scale With No Stretch" button: This would allow you to force the images to scale to the canvas size without adjusting or losing the starting aspect ratio.
Multi-Frame Preview: This would allow you to have arrows (or a timeline) so that you can get a preview of how each frame would look. This comes in handy when merging the frames onto existing frames with a blending mode.
A Timeline Preview: This would show where the new frames are to be added, and could help in selecting which frame to preview.
"Only Add to Existing Frames": This could have two available methods: It could only add the images to frames that already exist, skipping all the empty frames, or it could follow the timeline as normal, just not add anything to empty frames (and not create new frames in empty slots). The first method is particularly useful as one sometimes only wants to add frames where there are already frames (as an overlay, or for other purposes).

Additional info:
Auto calculate frames checks for numbers in the name of a layer. If the number starts with zeros (example: 0004) it will be put on frame four, because leading zeros are not calculated. However, if there are trailing zeros (example: 400) if will be put on frame 400. If there is a dot (.) in the number, it is not calculated, and 4.1 would be put of frame 1. There are a few possibilities for this option. When selected, more options could appear, allowing you to treat dots in four ways.
4.1 could be treated as frame 4, to consider the .1 irrelevant.
4.1 could place it on frame 1, because some use 4 as a version, and .1 as the frame.
4.1 could be treated as 41, because sometimes there are many frames with decimals. It is almost like changing the frame rate by 10.
4.1 could be place dynamically. If there is a frame 4, 4.1 would be placed on frame 5. If there is already 4 and 5, 4.1 would be put on frame 5, and frame 5 would be pushed to frame 6.
A dynamic method should perhaps be placed as the default method for treating dots. This would check all the layer numbers. If there is more than one frame with a dot (like 4.1, and 4.2), 4.1 will be treated as 1. If there are multiple different numbers with multiple decimals (like4.1, 4.2, 5.1, and 5.2), they are treated as 41 and 51, because 4 is clearly not the version (they are in the same image). Finally, if there are multiple numbers, but only one decimal (like 4.1, 5.1, 6.1), the 1 is disregarded and you end up with 4,5, and 6.
Frame step does not go directly on the previous frame. It is based off of the Start frame, and even/odd. For example, if frame 1 is skipped (because skip existing frames is checked), that frame will be placed on frame 2. If the frame step was based off the previous frame, the next frame (with a frame step of 2), would be placed on frame 4. However, this is now offset from the frame/no frame pattern. That one frame skip offset the pattern. Based on the start frame, the next frame would be at location 3.

If you have any questions about an option, please comment, or contact me.
Thank you, Uncle Snail
Comment 1 wolthera 2016-03-15 15:09:32 UTC
Could you check the 3.0 pre-alpha as this feature is already there? Also, make a thread on the forum so that all artists can join the discussion, as it seems you made some big plans there :p
Comment 2 masked_retriever 2016-08-30 21:11:23 UTC
I can confirm that this feature has broken in krita-3.0 in these circumstances:

Computer:
Kubuntu 14.04
KDELibs Version: 4.13.3
Qt Version: 4.8.6
Kernel: 3.13.0-93-generic
4xAMD Phenom X4 B60
7.8GB RAM

SPECIFIC VERSION:
I notice this feature WORKS in version with appimage:
krita-3.0-Beta-master-e413f10-x86_64.appimage
But is broken in versions after this point.  (Tested krita-3.0-RC-1)  Is this maybe a Qt4 thing?
Comment 3 Halla Rempt 2016-08-31 07:08:16 UTC
No, that's not possible because the appimage has its own Qt packaged.
Comment 4 animtim 2016-10-24 17:36:55 UTC
Import animation frames works fine in current dev version.
However, there's a little annoying issue with it, which I reported on 
https://bugs.kde.org/show_bug.cgi?id=371592

Closing this bug as fixed.