rawloader VS fast_image_resize

Compare rawloader vs fast_image_resize and see what are their differences.

rawloader

rust library to extract the raw data and some metadata from digital camera images (by pedrocr)

fast_image_resize

Rust library for fast image resizing with using of SIMD instructions. (by Cykooz)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
rawloader fast_image_resize
3 3
293 228
- -
5.4 7.7
28 days ago 7 days ago
Rust Rust
GNU Lesser General Public License v3.0 only Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

rawloader

Posts with mentions or reviews of rawloader. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-02-13.
  • Announcing: ImageSieve, a tool to assist in sorting and archiving images and videos
    6 projects | /r/rust | 13 Feb 2022
    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.
  • QOI: Lossless Image Compression in O(n) Time
    8 projects | news.ycombinator.com | 24 Nov 2021
    The simplest form is just to pack 10 or 12 bit values. There's all kinds of variations of that:

    https://github.com/pedrocr/rawloader/blob/a59bb78d156277781a...

    There are a few formats that use a curve and less bits. They do become lossy and doing dithering on decompress is useful to avoid banding.

    The Nikon one you mention was only used very early and is decoded by decode_8bit_wtable() in that file. It's just looking up the 8 bit value in the table and then adding some randomness to prevent the banding.

fast_image_resize

Posts with mentions or reviews of fast_image_resize. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-11-01.
  • Rust/WebAssembly image processing library
    2 projects | news.ycombinator.com | 1 Nov 2022
    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

    [4] https://github.com/Cykooz/fast_image_resize/issues/3

    [5] https://docs.rs/colstodian

  • Announcing: ImageSieve, a tool to assist in sorting and archiving images and videos
    6 projects | /r/rust | 13 Feb 2022
    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.
    2 projects | /r/rust | 13 Nov 2021

What are some alternatives?

When comparing rawloader and fast_image_resize you can also consider the following projects:

dnglab - Camera RAW to DNG file format converter

async-graphql - A GraphQL server library implemented in Rust

rawspeed - fast raw decoding library

portable-simd - The testing ground for the future of portable SIMD in Rust

slint - Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.

image-sieve - GUI based tool to sort and categorize images written in Rust

qoi - A rust implementation of the “Quite OK Image” format for fast, lossless image compression

exif-rs - Exif parsing library written in pure Rust

watchout - Automatically run scripts and reload images

msgpack-rust - MessagePack implementation for Rust / msgpack.org[Rust]