Simple resampling library in pure Rust.
rust
extern crate resize;
use resize::Pixel::Gray8;
use resize::Type::Triangle;
let mut src = vec![0;w1*h1];
let mut dst = vec![0;w2*h2];
let mut resizer = resize::new(w1, h1, w2, h2, Gray8, Triangle);
resizer.resize(&src, &mut dst);
See API documentation for overview of all available methods. See also this example.
Comparision of libswscale with IM:
bash
cd examples
convert tiger.png -filter Triangle -resize 540x360 im.png
ffmpeg -i tiger.png -vf scale=540:360:flags=bilinear sws.png
compare sws.png im.png -compose src diff-sws-im.png
Comparision of this library with IM:
bash
../target/debug/examples/resize tiger.png 540x360 rust.png
compare rust.png im.png -compose src diff-rust-im.png