jay3332 / ril

Rust Imaging Library: A high-level imaging crate for Rust.
https://crates.io/crates/ril
MIT License
81 stars 10 forks source link

Get Image as bytes? #25

Open ghmendonca opened 11 months ago

ghmendonca commented 11 months ago

Right now, looks like there is no way to get the image as an array of bytes (&[u8]). And since I'm not going to store the image into a file, but instead return the image from a HTTP request, I really need that. Would be nice to have something like image.to_bytes() or image.as_bytes().

Right now I'm getting the bytes by encoding to the same format the image already is, like this:

let mut bytes = Vec::new();
self.image.encode(self.format, &mut bytes).unwrap();

But of course this is allocating more memory that shouldn't be needed.

simxnet commented 2 months ago

Actually I found an approach for this, it's a bit hacky tho.

image.data.iter().map(|p| p.as_bytes().as_slice()).collect::<&[u8]>()

i did not test it hehe