cargo.toml [dependencies] image = "0.25.2"
main.rs use image::{imageops::FilterType, GenericImageView}; fn main() {
let img: image::DynamicImage = image::open("C:/Users/t/Pictures/B438097临时/21.jpg").unwrap(); let img = img.resize(500, 500, FilterType::Lanczos3);
//我想知道如何在保存前通过内存的方法获取图片的实际大小,谢谢 //I want to know how to get the actual size of the picture by the method of memory before saving, thanks println!("{:?}", &img.as_bytes().len());
img.save("test.jpg").unwrap(); }
1
共 6 条评论, 1 页
评论区
写评论学习了,感谢老师!
--
👇
Bai-Jinlin: ```rust use image::{codecs::jpeg::JpegEncoder, imageops::FilterType, ExtendedColorType};
fn main() { let img = image::open("t.jpg").unwrap(); let img = img.resize(300, 300, FilterType::Lanczos3);
}
还是不会写,能否给个例子?谢谢
--
👇
Chikage0o0: https://docs.rs/image/latest/image/trait.ImageEncoder.html
看一下压缩算法签名的文档里面有没有,如果没有只有解包才能知道。因为压缩算法就是一个重复字节归档规律,了解算法的老哥1k的压缩文件能解出来100G。 所以压缩文件如果没有签名是不知道大小的,有没有签名只有压缩算法才能控制,或者你压缩前记录,压缩完了之后,添加到压缩文件上。 但是这取决于这个压缩算法是否支持给文件加信息,比如map3 文件之类的可以加作者什么的。
https://eleduck.com/posts/x0fEN7
我用的是libvips进行图片压缩,对比了好几个最终选的libvips.已经两三年了稳定运行.
https://docs.rs/image/latest/image/trait.ImageEncoder.html