Releases: DavidEsdrs/image-processing
Releases · DavidEsdrs/image-processing
v3.6.0
v3.5.0
- Add rotation filter: flag
-r
Performance:
- Images are now represented in a linear structure instead of a matrix.
v3.4.0
Full Changelog: v3.3.0...v3.4.0
Fixes
- blur doesn't darken image when applied
- saturation filter is consistent
Performance
- blur is much faster (concurrency is used)
v3.3.0
Features
Blur filter:
-b
flag to decide the kernel size for the blur filter. The more it increases, the more blurry the output image will be (depending on the sigma value)-s
sigma flag to blur algorithm. It is optional. The ideal value for that is half the value ofb
Brightness filter:-l
flag (l for luminance). The value given will be added in luminance channel for each pixel.
v3.2.0
Fix
- Fix bug with gray scale filter (
gs
flag) when the image is of YCbCr color model. Before, when it was applied to this type of image, it left the image completely green. This behaviour was fixed. - Fix bug blur filter (
b
ands
flags) ) when the image is of YCbCr color model. The behaviour was the same as the previous one, and now it is fixed.
What's Changed
- docs: fix wrong information by @DavidEsdrs in #8
- docs/create packages docs by @DavidEsdrs in #9
- fix: convert to ycbcr using Convert function to ensure success by @DavidEsdrs in #10
Full Changelog: v3.1.0...v3.2.0
v3.1.0
Features
- Add support for gaussian blur
- Support gif output
What's Changed
- fix/nearest neighbour resizing by @DavidEsdrs in #1
- fix: validate file mime type before processing by @DavidEsdrs in #2
- refactor: common errors are fixed in the top of the file by @DavidEsdrs in #3
- feat/support gif output by @DavidEsdrs in #4
- feat/support gif output by @DavidEsdrs in #5
- feat/blur by @DavidEsdrs in #6
- feat/blur by @DavidEsdrs in #7
New Contributors
- @DavidEsdrs made their first contribution in #1
Full Changelog: v3.0.0...v3.1.0
v3.0.0
Introducing two new flags: h
(help), -v
(verbose), -ov
(overlay), width
and height
- flag
-v
:- Logs the progress of the processes
- Usage is implicit:
- Passing it means
true
, not passing meansfalse
- Passing it means
- Default is false
- If it is false, the tool will not generate any logs unless an error occurs.
- flag
-ov
:- Adds an overlay to the input image
-i
image will be the background-ov
must be a path to an image to be used as overlay- You can use some other flags to customize how the overlay will be applied:
-dt
:- Distance of the top of the overlay to the top of the background
-dl
:- Distance of the left of the overlay to the left of the background
-db
:- Distance of the bottom of the overlay to the bottom of the background
-dr
:- Distance of the right of the overlay to the right of the background
- Note that the vertical arguments (
dt
anddb
) are mutually exclusive, and the same applies to the horizontal ones (dl
anddr
) - The
dt
anddl
arguments take precedence overdb
anddl
. This means that if you provide adt
argument, thedb
argument will have no effect, and the same applies todl
anddr
. - The order of these arguments does not impact their behavior.
- refactor in nearest neighbor:
nn
is now a boolean flag, indicating that the resize algorithm is nearest neighbor- you can either pass
f
, as a scale factor, orwidth
andheight
flags indicating the dimensions of the output
- refactor in cropping:
- No process will be performed if the cropping values aren't valid for the image
- Many others internal refactors
v2.1.0
Core API remains the same.
Fixes:
- Significant performance enhancement when processing images with custom color palettes (~70% more performant)
- Prevention of errors when providing invalid crop values.
Features:
- flag
-q
:- Quality for jpeg compression. Default is 100
- Lower values provide higher compression but lower quality
- Higher values provide lower compression with higher quality.
v2.0.0
v2.0.0
Significant improvements in version 2.0. The core API remains unchanged, but the output of the processes has undergone drastic changes (hence the version 2.0).
Fixes:
- Color models are now respected (YCbCr remains YCbCr, RGBA remains RGBA, and so on).
- Images are saved with their correct codecs (previously saved as JPEG).
- Grayscale filter application now uses Golang native methods - the previous approach didn't work with images containing custom palettes.
Features:
- Introducing the image cropping (
-c
) command (see below)
iproc -i input.png -o output.png -c 0,1000,0,200
- Arguments are comma-separated in the following order: xstart, xend, ystart, yend. - The above can be simplified to:
iproc -i input.png -o output.png -c 1000,200
- Default values for xstart and ystart are both 0
- Introducing subsampling ratio (
-ssr
) command (for images with YCbCr color model)
iproc -i input.png -o output.png -ssr 422
- Options include:
- 444:
- 4:4:4 subsampling ratio (full quality)
- 422:
- 4:2:2 subsampling ratio
- 420:
- 4:2:0 subsampling ratio
- 440:
- 4:4:0 subsampling ratio
- 411:
- 4:1:1 subsampling ratio
- 410:
- 4:1:0 subsampling ratio
- 444:
- If no
ssr
value is provided, the original subsampling ratio will be used.
Full Changelog: v1.1.0...v2.0.0
v1.1.0
Introducing new features: clockwise (90 degrees) and counterclockwise (90 degrees) rotations have been added for enhanced functionality.
Commands:
Use -tl to rotate 90 degrees counterclockwise.
Utilize -tr to rotate 90 degrees clockwise.
While maintaining the core API, it was implemented some optimizations under the hood to enhance overall performance and efficiency.