Skip to content

Commit 827087b

Browse files
committed
Merge branch 'dev'
2 parents 7f1066e + 523522b commit 827087b

34 files changed

+1008
-756
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ workspace = { members = ["app"] }
22

33
[package]
44
name = "pic-scale-safe"
5-
version = "0.1.4"
5+
version = "0.1.5"
66
edition = "2021"
77
description = "Fast and safe performance image scaling"
88
readme = "README.md"

app/benches/resize_rgba/main.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use fast_image_resize::FilterType::{Bilinear, Lanczos3};
3333
use fast_image_resize::{CpuExtensions, PixelType, ResizeAlg, ResizeOptions, Resizer};
3434
use image::imageops::FilterType;
3535
use image::{DynamicImage, EncodableLayout, GenericImageView, ImageReader};
36-
use pic_scale_safe::{resize_fixed_point, resize_rgba8, ImageSize, ResamplingFunction};
36+
use pic_scale_safe::{resize_rgba8, ImageSize, ResamplingFunction};
3737

3838
pub fn criterion_benchmark(c: &mut Criterion) {
3939
let img = ImageReader::open("../assets/nasa-4928x3279.png")
@@ -93,11 +93,10 @@ pub fn criterion_benchmark(c: &mut Criterion) {
9393

9494
c.bench_function("Pic scale RGBA: Bilinear", |b| {
9595
b.iter(|| {
96-
_ = resize_fixed_point::<u8, i32, 4>(
96+
_ = resize_rgba8(
9797
&src_bytes,
9898
ImageSize::new(dimensions.0 as usize, dimensions.1 as usize),
9999
ImageSize::new(dimensions.0 as usize / 4, dimensions.1 as usize / 4),
100-
8,
101100
ResamplingFunction::Bilinear,
102101
)
103102
.unwrap();

app/benches/resize_rgba_u16/main.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use fast_image_resize::FilterType::{Bilinear, Lanczos3};
3333
use fast_image_resize::{CpuExtensions, PixelType, ResizeAlg, ResizeOptions, Resizer};
3434
use image::imageops::FilterType;
3535
use image::{DynamicImage, EncodableLayout, GenericImageView, ImageReader};
36-
use pic_scale_safe::{resize_fixed_point, resize_rgba16, ImageSize, ResamplingFunction};
36+
use pic_scale_safe::{resize_rgba16, ImageSize, ResamplingFunction};
3737

3838
pub fn criterion_benchmark(c: &mut Criterion) {
3939
let img = ImageReader::open("../assets/nasa-4928x3279.png")
@@ -71,7 +71,7 @@ pub fn criterion_benchmark(c: &mut Criterion) {
7171
.map(|&x| (x as u16) << 2)
7272
.collect::<Vec<_>>();
7373
b.iter(|| {
74-
_ = resize_fixed_point::<u16, i32, 4>(
74+
_ = resize_rgba16(
7575
&image_10_bit,
7676
ImageSize::new(dimensions.0 as usize, dimensions.1 as usize),
7777
ImageSize::new(dimensions.0 as usize / 4, dimensions.1 as usize / 4),

app/src/main.rs

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,13 @@ mod image_wrapper;
3030

3131
use fast_image_resize::images::Image;
3232
use fast_image_resize::{CpuExtensions, FilterType, PixelType, ResizeAlg, ResizeOptions, Resizer};
33-
use image::{
34-
imageops, DynamicImage, EncodableLayout, GenericImageView, ImageBuffer, ImageFormat,
35-
ImageReader, Rgb, RgbImage,
36-
};
37-
use pic_scale_safe::{
38-
premultiply_rgba8, resize_fixed_point, resize_floating_point, resize_rgb16, resize_rgb8,
39-
resize_rgb_f32, resize_rgba16, resize_rgba8, unpremultiply_rgba8, ImageSize,
40-
ResamplingFunction,
41-
};
33+
use image::{imageops, EncodableLayout, GenericImageView, ImageReader};
34+
use pic_scale_safe::{resize_rgb8, resize_rgba8, ImageSize, ResamplingFunction};
4235
use std::ops::{BitXor, Shr};
4336
use std::time::Instant;
4437

4538
fn main() {
46-
let img = ImageReader::open("./assets/nasa-4928x3279.png")
39+
let img = ImageReader::open("./assets/test_alpha.JPG")
4740
.unwrap()
4841
.decode()
4942
.unwrap();
@@ -53,21 +46,22 @@ fn main() {
5346
let mut working_store = transient.to_vec();
5447

5548
let src_size = ImageSize::new(dimensions.0 as usize, dimensions.1 as usize);
56-
let dst_size = ImageSize::new(dimensions.0 as usize + 1, dimensions.1 as usize + 1);
49+
// let dst_size = ImageSize::new(dimensions.0 as usize / 4, dimensions.1 as usize / 4);
50+
let dst_size = ImageSize::new(3240, 2160);
5751

58-
let start_mul = Instant::now();
59-
60-
premultiply_rgba8(&mut working_store);
61-
62-
println!("Alpha mul time {:?}", start_mul.elapsed());
52+
// let start_mul = Instant::now();
53+
//
54+
// // premultiply_rgba8(&mut working_store);
55+
//
56+
// println!("Alpha mul time {:?}", start_mul.elapsed());
6357

6458
let start = Instant::now();
6559

66-
let mut resized = resize_rgba8(
60+
let resized = resize_rgba8(
6761
&working_store,
6862
src_size,
6963
dst_size,
70-
ResamplingFunction::Bilinear,
64+
ResamplingFunction::CatmullRom,
7165
)
7266
.unwrap();
7367

@@ -96,7 +90,7 @@ fn main() {
9690
// let pixel_type: PixelType = PixelType::U8x4;
9791
// let src_image =
9892
// Image::from_slice_u8(dimensions.0, dimensions.1, &mut src_bytes, pixel_type).unwrap();
99-
// let mut dst_image = Image::new(dimensions.0 / 2, dimensions.1 / 2, pixel_type);
93+
// let mut dst_image = Image::new(dimensions.0 / 4, dimensions.1 / 4, pixel_type);
10094
//
10195
// let mut resizer = Resizer::new();
10296
// unsafe {
@@ -116,11 +110,11 @@ fn main() {
116110
// .unwrap();
117111
//
118112
// println!("Working time {:?}", start.elapsed());
113+
114+
// let img = u8_to_u16(dst_image.buffer());
119115
//
120-
// // let img = u8_to_u16(dst_image.buffer());
121-
// //
122-
// // let rgba_image = DynamicImage::ImageRgb8(RgbImage::from_raw(dst_image.width() as u32, dst_image.height() as u32, dst_image.buffer().to_vec()).unwrap());
123-
// // rgba_image.save_with_format("fast_image.png", ImageFormat::Png).unwrap();
116+
// let rgba_image = DynamicImage::ImageRgb8(RgbImage::from_raw(dst_image.width() as u32, dst_image.height() as u32, dst_image.buffer().to_vec()).unwrap());
117+
// rgba_image.save_with_format("fast_image.png", ImageFormat::Png).unwrap();
124118
// image::save_buffer(
125119
// "fast_image.png",
126120
// dst_image.buffer(),

0 commit comments

Comments
 (0)