17 Commits
Author SHA1 Message Date
Kirill Kuzminykh 6431b4d797 Fixed dividing image by alpha channel for images with U16x2 pixels. 2025-05-16 00:13:09 +03:00
Kirill Kuzminykh 75450229c4 Added support for multi-thread image processing with the help of rayon crate. 2024-10-03 20:24:00 +03:00
Kirill Kuzminykh 79a3a73afb - Updated dependencies.
- Optimized convolution algorythm by deleting zero coefficients from start and end of bounds.
2024-10-03 20:24:00 +03:00
Kirill Kuzminykh 2bc54792f2 - Added Gaussian filter for convolution algorithm.
- Added field `algorithm` into `ResizeOptions`.
- Argument `resize_alg` was removed from `Resizer::new()` method, use `options` argument of methods to resize instead.
2024-05-02 21:41:41 +03:00
Kirill Kuzminykh 8af42a2cf7 - Added ImageRef structure.
- Added example of code with differences between v3.x and v4.x.
2024-04-24 00:37:39 +03:00
Kirill Kuzminykh d90d235fb2 A lot of changes to replace ImageView and ImageViewMut structures on traits with the same names. 2024-04-10 23:38:46 +03:00
Kirill Kuzminykh bb6ffbedfc Slightly improved (about 3%) speed of AVX2 implementation of Convolution trait for U8x3 and U8x4 images. 2023-12-06 01:03:17 +03:00
Kirill Kuzminykh 539b8dd400 Updated dependencies. 2023-04-27 01:09:06 +03:00
Kirill Kuzminykh 5ddcf378ba Updated results of benchmark. 2023-03-01 23:23:37 +03:00
Kirill Kuzminykh 788297ce67 Added support of optimisation with helps of NEON SIMD for convolution of U16x3 images. 2022-11-22 23:50:56 +04:00
Kirill Kuzminykh cf46a07018 Added support of optimisation with helps of NEON SIMD for convolution of U16 images. 2022-11-19 00:20:30 +04:00
Kirill Kuzminykh 9320b4b1c4 Added support of optimisation with helps of NEON SIMD for convolution of U8x2 images. 2022-11-12 22:49:24 +04:00
Kirill Kuzminykh 7b5a1238ca Static variables SRGB_MAPPER and GAMMA22_MAPPER replaced by functions to create these mappers. 2022-10-28 20:59:41 +04:00
Kirill Kuzminykh e3b64bf7b1 - Trait Pixel renamed into PixelExt and changed.
- All pixel types (`U8`, `U8x2`, ...) replaced by type aliases for new generic structure `Pixel`. Use method `new()` to create instance of one pixel.
- Added module `color` for working with colorspace and gamma.
2022-10-07 20:39:21 +04:00
Kirill Kuzminykh 39f7841030 - Breaking changes:
- Struct `ImageView` replaced by enum `DynamicImageView`.
  - Struct `ImageViewMut` replaced by enum `DynamicImageViewMut`.
  - Trait `Pixel` changed:
    - Associated type `ComponentsCount` renamed into `CountOfComponents`.
    - Associated type `ComponentCountOfValues` renamed into `CountOfComponentValues`.
    - Associated method `components_count` renamed into `count_of_components`.
    - Associated method `component_count_of_values` renamed into `count_of_component_values`.
- Added generic structs `ImageView` and `ImageViewMut`.
- Added module `color` for working with colorspace and gamma.
- Added functions `change_type_of_pixel_components` and
  `change_type_of_pixel_components_dyn` to change type of pixel's
  components in whole image.
- Added generic trait `IntoPixelComponent<Out: PixelComponent>`.

### Example application

- Added option `--high_precision` to use `u16` as pixel components
  for intermediate image representation.
- Added converting of source image into linear colorspace before it will be resized.
  Destination image will be returned into original colorspace before it will be saved.
2022-09-14 00:07:03 +03:00
Kirill Kuzminykh c454c3b990 Added functions for converting image colorspace. 2022-08-31 22:38:27 +03:00
Kirill Kuzminykh 3c0ad5dd32 Added example of command line application "resizer". 2022-07-24 21:28:53 +03:00