Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible to consider other image handling crates for cosmic applcations? #395

Open
Quackdoc opened this issue Jun 21, 2024 · 0 comments
Open

Comments

@Quackdoc
Copy link

While image-rs is the go to for general image handling within rust projects, it's not the only one. Zune-image is another library that abstracts image decoding of multiple formats. To get a good coverage of image codecs, using multiple may be necessary. a brief overview of some of the issues current crates have

  • zune-image

    • lacks any support for GIF, AVIF and Webp as well as some less common formats.
    • it also has a policy of only accepting decoders written in rust which may prove troublesome to support formats like webp, a VVC based image format should one exit, (it will eventually) as well as HEIF. unless rust native decoders are made for them. (AVIF has a rust native decoder but it remains to be seen if they are willing to accept one, asked here Image Format Issue Tracker. etemesi254/zune-image#102)
    • mostly just zune-* formats
  • image-rs

  • ril

    • only supports a couple image formats, but within that is full support via libwebp (vendored build) and claims to have plans for doing a native rust webp decoder in the future

There are other crates too if we leave the native rust world.

magick-rust is rough around the edges but it could be used to decode images, since it's a binding to imagemagick it has great support, far greater then any rust native library, however it's fairly obtuse to use.

ffmpeg-* crates, there are plenty of ffmpeg crates, linking against ffmpeg has historically been a hassle, and ffmpeg has a hard resolution limit on images limiting support. However ffmpeg is pretty much guaranteed to be available on most distros.

It may also be possible and perhaps most wanted to simply make a simple shim crate which can fill the gaps and implement a image-rs like API so it would be a mostly drop in place solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant