fast_image_resize
rust-blog
Our great sponsors
fast_image_resize | rust-blog | |
---|---|---|
3 | 63 | |
225 | 6,571 | |
- | - | |
8.1 | 5.0 | |
about 1 month ago | 16 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
fast_image_resize
-
Rust/WebAssembly image processing library
Unfortunately mostly useless for professional applications.
It fails the most simple test from [0] in the online demo[1]. ImageMagic also has a page about this[2]. I.e. also try the 'city lights' test with the online demo to see it fail for the same reason.
The issue is that if you write code that deals with color you must understand color spaces and gamma. A non-linearly encoded color can't be plugged into any of the math you use to manipulate images and get meaningful results.
Almost all code I come across in the Rust ecosystem (or elsewhere no less) treats color as linear. But color incoming from image files that are not RAW, EXR or some TIF variant is almost /never/ linear.
The reason is that it is written by people who are (often very skilled) software developers but lack any basic understanding of color science.
And then it often takes convicing the maintainers first and the yonx before it is fixed. I'm speaking from multiple experiences here.
For example, the fast image resize crate[3] addressed the resp. issue I filed last Dec.[4] less than a week ago. From the crate being released in the wild to it adding an option to treat color correct almost 1.5 years passed.
This is not the same as forcing crate users to treat color correct btw. The crate added a function that calls a closure but a user who do not understand color science may not grok why this is needed and not use it.
I guess I'm saying there is also often an 'UX' issue that perpetuates the problem to the user side of the API after the crate itself addressed it somehow.
That said, there are some very good crates that abstract the resp. parts away to address the issue. E.g. [5].
[0] http://www.ericbrasseur.org/gamma.html?i=1#explanation
[1] https://silvia-odwyer.github.io/photon/demo.html
[2] https://legacy.imagemagick.org/Usage/resize/#resize_colorspa...
[3] https://docs.rs/fast_image_resize
-
Announcing: ImageSieve, a tool to assist in sorting and archiving images and videos
I absolutely loved all the crates available that made my life very simple in many cases. I used (among others) the slint ui framework, kamadak-exif, img_hash, fast_image_resize and rawloader.
- fast_image_resize - crate for fast image resizing with support of SIMD instructions.
rust-blog
- Common Rust Lifetime Misconceptions
- What learning resource has had the greatest impact in elevating your understanding and knowledge of Rust?
- I do not understand why Sized bound prevents a trait from being used as a trait object.
-
Lifetime annotations: why doesn't Rust?
It's already now that the elided lifetimes are not always correct, as pointed out in Common Rust Lifetime Misconceptions (No 5) by pretzelhammer.
-
Anything C can do Rust can do Better
Common Rust Lifetime Misconceptions - kirill
-
Resources on Lifetimes
I found this blog post really helpful. Even though it's framed as correcting lifetime "misconceptions", it helped me go from just using lifetimes to appease the compiler and avoid cloning to actually thinking about how long my data is being held onto.
Probably a bit more advanced than what you asked about, but still possibly useful: Common Rust Lifetime Misconceptions by /u/pretzelhammer.
-
C++ Primer style book for Rust
For fundamental traits, there is a blog post about this.
-
Let's share some hidden gems in Rust for newcomers!
Tour of Rust's Standard Library Traits
-
Ressources that better explain a certain Rust language feature
I'm looking for ressources that are dedicated to explaining a certain feature of Rust, something like this. or even more specific like explaining a single trait. To add them to the Rust CS curriculum that I have previously shared here. all kinds of ressources are welcome, blog articles, videos...etc. So, if you created or have a link to ressources that you think did a great job explaining topic X post it below!
What are some alternatives?
zero-to-production - Code for "Zero To Production In Rust", a book on API development using Rust.
fluvio - Lean and mean distributed stream processing system written in rust and web assembly.
static-analysis - ⚙️ A curated list of static analysis (SAST) tools and linters for all programming languages, config files, build tools, and more. The focus is on tools which improve code quality.
Rustlings - :crab: Small exercises to get you used to reading and writing Rust code!
async-graphql - A GraphQL server library implemented in Rust
polonius - Defines the Rust borrow checker.
bacup - An easy-to-use backup tool designed for servers.
mini-redis - Incomplete Redis client and server implementation using Tokio - for learning purposes only
ggegui - A simple implementation of egui for ggez
rawloader - rust library to extract the raw data and some metadata from digital camera images
book - The Rust Programming Language
portable-simd - The testing ground for the future of portable SIMD in Rust