Page not found :(
+The page you are looking for doesn't exist or has been moved.
+diff --git a/404.html b/404.html new file mode 100644 index 0000000..05f95e0 --- /dev/null +++ b/404.html @@ -0,0 +1,245 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The page you are looking for doesn't exist or has been moved.
+The authors of the blog articles.
+ +Creator of framels.
+ + +A usage of arguments
+Run fls -l
to list your current directory and display EXR informations.
Run fls -l /path/of/directory/
to list a specific directory and display EXR informations.
$ fls -l samples/big/
+RenderPass_Beauty_1_*****.exr@0-96
+RenderPass_Occlusion_1_*****.exr@0-73,75-96
+RenderPass_Id_1_*****.exr@0-96
+RenderPass_Occlusion_1_***.exr@74
+RenderPass_Ncam_1_00042.exr.bkp
+RenderPass_SpecularRim_1_*****.exr@0-96
+RenderPass_DiffuseKey_1_*****.exr@0-96
+RenderPass_Pcam_1_*****.exr@0-96
+RenderPass_Reflection_1_*****.exr@0-96
+RenderPass_Specular_1_*****.exr@0-96
+RenderPass_Diffuse_1_*****.exr@0-96
+RenderPass_IndDiffuse_1_*****.exr@0-96
+RenderPass_Ncam_1_*****.exr@0-41,43-96
+.\samples\big\RenderPass_Beauty_1_00000.exr layer #0 size:Vec2(320, 143); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("Plane_Beauty.A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("Plane_Beauty.B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("Plane_Beauty.G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("Plane_Beauty.R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("Spheres_Beauty.A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("Spheres_Beauty.B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("Spheres_Beauty.G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("Spheres_Beauty.R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 24, uniform_sample_type: Some(F16) }
+.\samples\big\RenderPass_Occlusion_1_00000.exr layer #0 size:Vec2(320, 139); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 8, uniform_sample_type: Some(F16) }
+.\samples\big\RenderPass_Id_1_00000.exr layer #0 size:Vec2(140, 52); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 8, uniform_sample_type: Some(F16) }
+.\samples\big\RenderPass_Occlusion_1_074.exr layer #0 size:Vec2(320, 156); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 8, uniform_sample_type: Some(F16) }
+Not an exr
+.\samples\big\RenderPass_SpecularRim_1_00000.exr layer #0 size:Vec2(320, 143); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 8, uniform_sample_type: Some(F16) }
+.\samples\big\RenderPass_DiffuseKey_1_00000.exr layer #0 size:Vec2(320, 143); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 8, uniform_sample_type: Some(F16) }
+.\samples\big\RenderPass_Pcam_1_00000.exr layer #0 size:Vec2(320, 143); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F32, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F32, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F32, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F32, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 16, uniform_sample_type: Some(F32) }
+.\samples\big\RenderPass_Reflection_1_00000.exr layer #0 size:Vec2(320, 143); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 8, uniform_sample_type: Some(F16) }
+.\samples\big\RenderPass_Specular_1_00000.exr layer #0 size:Vec2(320, 143); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 8, uniform_sample_type: Some(F16) }
+.\samples\big\RenderPass_Diffuse_1_00000.exr layer #0 size:Vec2(320, 143); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 8, uniform_sample_type: Some(F16) }
+.\samples\big\RenderPass_IndDiffuse_1_00000.exr layer #0 size:Vec2(320, 143); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 8, uniform_sample_type: Some(F16) }
+.\samples\big\RenderPass_Ncam_1_00000.exr layer #0 size:Vec2(320, 143); channels:ChannelList { list: [ChannelDescription { name: exr::Text("A"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("B"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("G"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }, ChannelDescription { name: exr::Text("R"), sample_type: F16, quantize_linearly: false, sampling: Vec2(1, 1) }], bytes_per_pixel: 8, uniform_sample_type: Some(F16) }
+
+You can use a recursive approch of the directory and sub-folder
+You can use -r
Run fls -r /path/of/directory/
to list a specific directory and his
+subfolder
$ fls -r .\samples\
+.\samples\big\RenderPass_Diffuse_1_*****.exr@0-96
+.\samples\big\RenderPass_Ncam_1_00042.exr.bkp
+.\samples\big\RenderPass_DiffuseKey_1_*****.exr@0-96
+.\samples\big\RenderPass_Occlusion_1_*****.exr@0-73,75-96
+.\samples\big\RenderPass_Occlusion_1_***.exr@74
+.\samples\small\foo_bar.exr
+.\samples\big\RenderPass_SpecularRim_1_*****.exr@0-96
+.\samples\big\RenderPass_Pcam_1_*****.exr@0-96
+.\samples\big\RenderPass_Ncam_1_*****.exr@0-41,43-96
+.\samples\small
+.\samples\big
+.\samples\big\RenderPass_Id_1_*****.exr@0-96
+.\samples\big\RenderPass_Specular_1_*****.exr@0-96
+.\samples\big\RenderPass_Beauty_1_*****.exr@0-96
+.\samples
+.\samples\big\RenderPass_IndDiffuse_1_*****.exr@0-96
+.\samples\big\RenderPass_Reflection_1_*****.exr@0-96
+.\samples\small\aaa.***.tif@1-5
+
+Watch out, the recursive mode is not compatible with the -l, --list
option, at the moment.
You can use a tree approch of the directory and sub-folder
+You can use -t
or --tree
Always use -r
to use the tree mode.
Run fls -t -r /path/of/directory/
to list a specific directory and his
+subfolder
$ fls -t -r .\samples\
+ā
+ ā samples
+ ā big
+ ā RenderPass_Beauty_1_*****.exr@0-96
+ ā RenderPass_DiffuseKey_1_*****.exr@0-96
+ ā RenderPass_Diffuse_1_*****.exr@0-96
+ ā RenderPass_Id_1_*****.exr@0-96
+ ā RenderPass_IndDiffuse_1_*****.exr@0-96
+ ā RenderPass_Ncam_1_*****.exr@0-41,43-96
+ ā RenderPass_Ncam_1_00042.exr.bkp
+ ā RenderPass_Occlusion_1_*****.exr@0-73,75-96
+ ā RenderPass_Occlusion_1_***.exr@74
+ ā RenderPass_Pcam_1_*****.exr@0-96
+ ā RenderPass_Reflection_1_*****.exr@0-96
+ ā RenderPass_SpecularRim_1_*****.exr@0-96
+ ā RenderPass_Specular_1_*****.exr@0-96
+ ā mega
+ ā response_1689510067951.json
+ ā small
+ ā aaa.***.tif@1-5
+ ā foo_bar.exr
+
+
+
+
+
+
+ A usage of library
+The library is documented with rustdoc and you can find the documentation here.
+But here is a basic listing of the library
+The function basic_listing is the main function of the library it use a list of
+filename as in input and pack the frame sequences using a new filename
+like toto.***.jpg@158-179
+It take a Vec<String>
of entries as an input
use framels::{basic_listing, parse_dir, paths::{Paths, PathsPacked}};
+
+let source = "./samples/big".to_string();
+let paths: Paths = parse_dir(&source);
+let results: PathsPacked = basic_listing(paths);
+println!("{}", results);
+``
+
+
+
+
+
+
+ Contributor Covenant Code of Conduct.
+We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual identity +and orientation.
+We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community.
+Examples of behavior that contributes to a positive environment for our +community include:
+Examples of unacceptable behavior include:
+Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful.
+Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate.
+This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event.
+Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +aaranxu@outlook.com. +All complaints will be reviewed and investigated promptly and fairly.
+All community leaders are obligated to respect the privacy and security of the +reporter of any incident.
+Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct:
+Community Impact: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community.
+Consequence: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested.
+Community Impact: A violation through a single incident or series +of actions.
+Consequence: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban.
+Community Impact: A serious violation of community standards, including +sustained inappropriate behavior.
+Consequence: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban.
+Community Impact: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals.
+Consequence: A permanent ban from any sort of public interaction within +the community.
+This Code of Conduct is adapted from the Contributor Covenant, +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+Community Impact Guidelines were inspired by +Mozilla's code of conduct enforcement ladder.
+For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available +at https://www.contributor-covenant.org/translations.
+ + + + + +Contribute to AdiDoks, improve documentation, or submit to showcase.
+š Make sure to read the Code of Conduct.
+š The AdiDoks code lives in the adidoks
repository
š The documentation lives in ./content/docs/
+of the adidoks
repository.
fls is a simple command line to pack frames sequence in a terminal way
+One page summary of how to start to use framels. Quick Start ā
+Contributing and Help.
+Find out how to contribute to Doks. Contributing ā
+Get help on Doks. Help ā
+ + + + + +How to start using fls?
+a standard machine with an OS listed below:
+Before using fls
you need to have the adminstrator right and terminal application
+like powershell or gnome-terminal
You can download the last version https://github.com/forticheprod/fls/releases
+fls.exe
file into C:\program files\Fls
C:\program files\Fls
to the PATH
environement variablefls
binary into /usr/bin
You can install via https://crates.io/
+cargo install framels
~/.cargo/bin/
is added to path if not add itRun fls --help
Run fls
to list your current directory.
$ touch aaa.001.tif aaa.002.tif aaa.003.tif aaa.004.tif aaa.005.tif foo_bar.exr
+$ fls
+foo_bar.exr
+aaa.***.tif@1-5
+
+Run fls /path/of/directory/
to list a specific directory.
Exemple with the sample set big at the root level of the repo
+$ fls ./samples/big/
+RenderPass_Pcam_1_*****.exr@0-96
+RenderPass_Beauty_1_*****.exr@0-96
+RenderPass_IndDiffuse_1_*****.exr@0-96
+RenderPass_Ncam_1_*****.exr@0-41,43-96
+RenderPass_Specular_1_*****.exr@0-96
+RenderPass_Id_1_*****.exr@0-96
+RenderPass_Occlusion_1_***.exr@74
+RenderPass_Reflection_1_*****.exr@0-96
+RenderPass_SpecularRim_1_*****.exr@0-96
+RenderPass_Ncam_1_00042.exr.bkp
+RenderPass_DiffuseKey_1_*****.exr@0-96
+RenderPass_Diffuse_1_*****.exr@0-96
+RenderPass_Occlusion_1_*****.exr@0-73,75-96
+
+
+
+
+
+
+ Answers to frequently asked questions.
+AdiDoks is a Zola theme for Documentation's sites, ported by the Hugo Theme +Doks, which is a pretty nice theme. Thanks a lot to +h-enk, the creator of the Doks.
+/
ā
and ā
Enter
Esc
Send Aaran Xu an E-mail:
+ + + + + + +framels is a command line tool and lib dedicated to animation and vfx, for terminal user or simply other rust projects.
+ Get started + +Inspire by the standard industry rvls command line from AutodeskĀ© (ā„ Tweak team)
+fls is made to be really fast. 5x time faster than any others
+framels is made with pure rust lib which is helping the compatibility with all OS
+TLDR: We do not use cookies and we do not collect any personal data.
+Contact us if you have any questions.
+Effective Date: 1st May 2021
+ +