All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
9.0.0 - 2021-12-10
- Fixed resize of images with transparency. Thanks to @chebum.
- Dropped
.alpha
option. - Increased 2x data precision between convolver passes.
8.0.0 - 2021-11-22
- Replaced
.quality
with.filter
. - Added
mks2013
filter and use it by default.
7.1.1 - 2021-11-22
- Force webworker always return typed array, to avoid artifacts in Chrome, #223.
7.1.0 - 2021-06-21
- In FireFox experimental resist fingerprinting mode
pica.resize()
now returns an error instead of returning random data, nodeca/image-blob-reduce#28.
- Images with Exif orientation are now resized correctly in Chromium-based browsers (it was previously broken in pica 7.0.0), #211.
7.0.0 - 2021-05-23
- [BREAKING] Rewrite unsharp mask, use
V
channel of HSV instead ofL
channel of HSL, to reduce color shift (#209). - [BREAKING] Unsharp mask options are now more close to Photoshop (
unsharpAmount
should be multiplied by 2 andunsharpThreshold
should be divided by 2 if you switch from v6.x). - Splitted big
Pica
methods to smaller ones. - Use docker to build webassembly modules.
- Use
OffscreenCanvas
when possible (extract image bitmap in webworker).
6.1.1 - 2020-08-20
- Aded Safari canvas GC workaround, #199.
6.1.0 - 2020-07-10
- Aded OffscreenCanvas support, #195.
6.0.0 - 2020-06-25
- Use
dist/pica.js
as main entry. No more workarounds needed for webpack. - Avoid babelify dependency in dependent packages if browserify used.
- Rewrite build scripts.
- Added
ImageBitmap
input support.
5.3.0 - 2020-06-09
- Use
derequire
to allow nestedbrowserify
for/dist/pica.js
.
5.2.0 - 2020-05-25
- Aded OffscreenCanvas support, #195.
5.1.1 - 2020-05-18
- Suppress
createImageBitmap
errors to use fallback, #190.
5.1.0 - 2019-07-15
- Bump multimath dependency.
- Avoid possible CSP warnings, caused by WASM check, when feature not requested in options.
5.0.1 - 2019-07-12
- Fix unsharp crash when CIB enabled (from 4.0.0), #160.
- Dev deps bump.
5.0.0 - 2018-11-02
- Maintenance, babelify upgrade: switch to @babel/core and @babel/preset-env.
4.2.0 - 2018-10-25
- Added bounds check for invalid output canvas size (#155).
- Maintenance: dev deps bump.
4.1.1 - 2018-03-31
- Should return result via promise (regression), fix #139.
4.1.0 - 2018-03-27
- Resize in multiple steps for big scales, fix #135.
4.0.2 - 2018-03-05
- Multimath bump, should fix issue with broken WebAssembly engine in IOS 11.2.x Webkit (Safary/Chrome).
4.0.1 - 2017-10-13
- Attempt to fix failure when WebAssembly disabled via CSP.
4.0.0 - 2017-09-30
- Internals rewritten to use
multimath
library. - WebAssembly implementation for
unsharp mask
, as bonus.
3.0.6 - 2017-07-13
- More constrains for
createImageBitmap()
use. Filter out browsers withoutImageBitmap.prototype.close()
method (Chrome 51 etc).
3.0.5 - 2017-06-30
- Avoid Promise use in webworker. Should help with IE11, which suddently fixed creating of webworkers from data URI.
3.0.4 - 2017-04-20
- IE fix.
3.0.3 - 2017-04-18
- Fixed non working
.createImageBitmap()
resize, but disabled by default due bad quality.
- Added debug messages.
3.0.2 - 2017-04-16
- Fix wasm crash on upscale, #87.
3.0.1 - 2017-04-14
- Add missed
.set()
fallback for ancient browsers.
3.0.0 - 2017-04-11
- Add WebAssembly resizer.
- Add createImageBitmap() resizer.
- Add .toBlob() method.
- Major rewrite. New API, promise-based.
- Add async image decode via createImageBitmap().
- Drop WebGL resizer.
2.0.8 - 2016-10-01
- Set default number of CPUs (workers) to 1 if
navigator.hardwareConcurrency
not supported (ancient browsers).
2.0.7 - 2016-10-01
- Fix Safary bug (grid could appear on downscaled image).
- WEBGL shaders rework (still buggy, not for production).
2.0.6 - 2016-08-04
- Fix tiler math: bad rounding could produce tiles out of src area, #61.
2.0.5 - 2016-07-19
- Fix mem leak: release objectURL, used to create Web Workers.
2.0.4 - 2016-06-24
- Deps bump (
webworkify
). Previous version had problems with IE Edge, #56.
2.0.3 - 2016-06-07
- Deps bump. Use fresh
webworkify
with proper ObjectURL release, #55.
2.0.2 - 2016-03-30
- Optimised previous fix.
2.0.1 - 2016-03-30
- Fixed garbage on image edge tiles when alpha exists.
2.0.0 - 2016-03-12
- Support
Image()
as input src.
- Architecture rework: images are now splitted to tiles to restrict memory use and allow parallel processing.
- Built-in WebWorkers manager to use all available CPU cores.
- Feature flags (WW, WEBGL) are forced to
false
after resize call, if feature not supported or disabled due fatal error. unsharpRadius
range restricted to 0.5..2.0.- Experimental code for WebGL support (noisy & buggy, disabled by default).
.resizeBuffer()
is no longer recommended for use. It does not use webworkers anymore (and optiontransferable
is not used too).
1.1.1 - 2015-11-10
- Bumped
glur
version to fix bug in unsharp mask with vertical images.
1.1.0 - 2015-11-09
- Unsharp mask now useable.
1.0.8 - 2015-10-28
- Fixed brightness loss due missed value rounding in convolvers.
1.0.7 - 2014-11-18
- Fixed alpha reset for images without alpha channel (regression in 1.0.5).
1.0.6 - 2014-11-08
- Removed alpha correction, because canvas data is not premultipled (#13). Thanks to @devongovett.
1.0.5 - 2014-11-03
- Expose WebWorker on pica call, to allow early termination of task.
- Minor speed opts.
1.0.4 - 2014-10-04
- Added transferable objects support.
- Fixed demo to fork over ssl too.
1.0.3 - 2014-09-29
- Added unsharp mask implementation (very naive). Need futher work.
- ~25% speed boost (thanks to @mraleph for advice).
1.0.2 - 2014-09-27
- Improved capabilities detection.
.WW
now shows if pica can use Web Workers or not.
1.0.1 - 2014-09-25
- Enchanced API to allow pass destination buffer by reference.
- Added IE workarounds. Thanks to @noomorph.
1.0.0 - 2014-09-24
- First release.