Comments (4)
There is a sign of error. The compiler prints a warning that you're ignoring the return value of save
:
warning: unused `Result` that must be used
--> src/main.rs:16:5
|
16 | image.save("before.jpg"); // Doesn't work
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: this `Result` may be an `Err` variant, which should be handled
= note: `#[warn(unused_must_use)]` on by default
help: use `let _ = ...` to ignore the resulting value
|
16 | let _ = image.save("before.jpg"); // Doesn't work
| +++++++
warning: unused `Result` that must be used
--> src/main.rs:19:5
|
19 | image.to_rgb8().save("after.jpg"); // Works!
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: this `Result` may be an `Err` variant, which should be handled
help: use `let _ = ...` to ignore the resulting value
|
19 | let _ = image.to_rgb8().save("after.jpg"); // Works!
| +++++++
If you handle the error by changing your code to image.save("before.jpg").expect("failed to save image")
then you can see what the actual problem is:
thread 'main' panicked at 'failed to save image: Unsupported(UnsupportedError { format: Exact(Jpeg), kind: Color(Rgb32F) })', src/main.rs:16:30
In other words, JPEG files cannot hold Rgb32F pixels so your image couldn't be saved using that format.
from image.
Ah ok, I didn't think about that. Ok then, is that expected behaviour that we cannot save Rgb32F pixels? Maybe we could cast Rgb<f32>
to Rgb<u8>
implicitly by multiplying by 255?
from image.
We intentionally don't do that conversion implicitly. However, I believe that's how DynamicImage::into_rgb8
works when called on a Rgb32F image.
from image.
Ok, thank you for clarification.
from image.
Related Issues (20)
- `rayon` is included in the dependency tree even when the `rayon` feature is disabled when `ravif` feature is enabled HOT 1
- The documentation on `crop()` is confusing HOT 1
- Add in-place versions of all rotation operations HOT 1
- `DynamicImage::crop()` is slow because `to_image()` is slow HOT 1
- Cropping API doesn't check bounds, easy to misuse HOT 7
- EnumeratePixels and EnumerateRows should implement DoubleEndedIterator HOT 3
- Implement a `rows()` iterator on `SubImage` HOT 6
- how to convert a rgbaImage to opencv's Mat?
- Regression: Hot lib reload, unable to find __rust_alloc. HOT 6
- Increased generation loss in JPEG encoder HOT 1
- Broken link in docs HOT 2
- Should the next major release be 1.0? HOT 2
- Detect alpha on jpeg HOT 2
- Alternate versions of the crates which allow regular breaking changes HOT 7
- Animated WebP decoding error HOT 8
- “Corrupt RLE data” on simple BMP
- Make set_icc_profile function accessible
- Blur for images with alpha is incorrect, bleeds color from transparent pixels HOT 4
- Not reproducible crash in png module
- Error: PNG image and JPEG failed loading
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from image.