mirror of
https://github.com/Cykooz/fast_image_resize.git
synced 2026-10-08 01:11:09 +00:00
Fixed tests in README.md
This commit is contained in:
@@ -162,11 +162,11 @@ fn resize_image_example() {
|
||||
|
||||
### Change CPU extensions used by resizer
|
||||
|
||||
```rust
|
||||
```ignore
|
||||
use fast_image_resize as fr;
|
||||
|
||||
fn main() {
|
||||
let mut resizer = fr::Resizer::new(fr::ResizeAlg::Convolution(fr::FilterType::Lanczos3));
|
||||
le mut resizer = fr::Resizer::new(fr::ResizeAlg::Convolution(fr::FilterType::Lanczos3));
|
||||
unsafe {
|
||||
resizer.set_cpu_extensions(fr::CpuExtensions::Sse4_1);
|
||||
}
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
use std::io::BufWriter;
|
||||
use std::num::NonZeroU32;
|
||||
|
||||
use image::codecs::png::PngEncoder;
|
||||
use image::io::Reader as ImageReader;
|
||||
use image::{ColorType, GenericImageView};
|
||||
|
||||
use fast_image_resize as fr;
|
||||
|
||||
#[test]
|
||||
fn resize_image_example() {
|
||||
// Read source image from file
|
||||
let img = ImageReader::open("./data/nasa-4928x3279.png")
|
||||
.unwrap()
|
||||
.decode()
|
||||
.unwrap();
|
||||
let width = NonZeroU32::new(img.width()).unwrap();
|
||||
let height = NonZeroU32::new(img.height()).unwrap();
|
||||
let mut src_image = fr::Image::from_vec_u8(
|
||||
width,
|
||||
height,
|
||||
img.to_rgba8().into_raw(),
|
||||
fr::PixelType::U8x4,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
// Create MulDiv instance
|
||||
let alpha_mul_div: fr::MulDiv = Default::default();
|
||||
// Multiple RGB channels of source image by alpha channel
|
||||
alpha_mul_div
|
||||
.multiply_alpha_inplace(&mut src_image.view_mut())
|
||||
.unwrap();
|
||||
|
||||
// Create container for data of destination image
|
||||
let dst_width = NonZeroU32::new(1024).unwrap();
|
||||
let dst_height = NonZeroU32::new(768).unwrap();
|
||||
let mut dst_image = fr::Image::new(dst_width, dst_height, src_image.pixel_type());
|
||||
|
||||
// Get mutable view of destination image data
|
||||
let mut dst_view = dst_image.view_mut();
|
||||
|
||||
// Create Resizer instance and resize source image
|
||||
// into buffer of destination image
|
||||
let mut resizer = fr::Resizer::new(fr::ResizeAlg::Convolution(fr::FilterType::Lanczos3));
|
||||
resizer.resize(&src_image.view(), &mut dst_view).unwrap();
|
||||
|
||||
// Divide RGB channels of destination image by alpha
|
||||
alpha_mul_div.divide_alpha_inplace(&mut dst_view).unwrap();
|
||||
|
||||
// Write destination image as PNG-file
|
||||
let mut result_buf = BufWriter::new(Vec::new());
|
||||
PngEncoder::new(&mut result_buf)
|
||||
.encode(
|
||||
dst_image.buffer(),
|
||||
dst_width.get(),
|
||||
dst_height.get(),
|
||||
ColorType::Rgba8,
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
fn main() {
|
||||
let mut resizer = fr::Resizer::new(fr::ResizeAlg::Convolution(fr::FilterType::Lanczos3));
|
||||
unsafe {
|
||||
resizer.set_cpu_extensions(fr::CpuExtensions::Sse4_1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user