- Last updated: 2024-07-06T12:02:18Z
- Generator: thi.ng/monopub
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
Note: Unlisted patch versions only involve non-code or otherwise excluded changes and/or version bumps of transitive dependencies.
6.1.33 (2024-06-21)
- minor, dedupe kernel normalization (4fec4e6)
- enforce uniform naming convention of internal functions (56992b2)
6.1.29 (2024-04-20)
- update type usage (8ccc518)
6.1.21 (2024-03-18)
- update .rotateByID() impls (de6bd05)
6.1.11 (2024-02-22)
- update object destructuring in all pkgs & examples (f36aeb0)
6.1.0 (2024-01-26)
- add canvasFromPixelBuffer(), update canvasPixels() (7f8583b)
6.0.0 (2023-12-19)
- remove canvas2d() & related types (20d1879)
- BREAKING CHANGE: migrate canvas2d() & related types to new pkg @thi.ng/canvas
- add canvas opts arg for imageCanvas()
5.0.0 (2023-11-12)
- update getRegion() return type (6c22953)
- BREAKING CHANGE: update getRegion() to return undefined
if result region < 1 pixel
- add size checks to impls in IntBuffer/FloatBuffer
4.3.3 (2023-11-09)
- update all tests (packages A-S) (e3085e4)
4.3.0 (2023-10-27)
- add imageFromFile(), deprecate imagePromise() (cac6468)
- internal restructure, move all imageXXX() fns to /src/image.ts
- add imageFromFile()
- deprecate imagePromise(), add as imageFromURL()
4.2.9 (2023-08-04)
- update
identity
usage in various pkgs (b6db053)
4.2.0 (2023-04-08)
- add IRotate and impls for int/float buffers (a25b52a)
- add rotateCW/CCW/180 methods
- add rotateByID()
4.1.0 (2023-01-10)
- add normalize opt for defKernel()/defLargeKernel() (9286590)
- add FloatFormat.getNormalized() (ddf0980)
- add FLOAT_GRAY_RANGE format (eedb24f)
- update/improve FloatBuffer.as() single channel conversions (0146075)
- check if both source & dest formats are single channel
- if so, convert directly via getNormalized() and avoid intermediate (lossy) conversion via ABGR
- using only scalar access also faster than per-pixel subarrays
- add FloatFormat.range (0dbac7d)
- update all float formats
- update FloatBuffer.clamp/clampChannel/getChannel()
- add IntBuffer/FloatBuffer.flipX() (daa7c32)
- update IBlend (1d3f358)
- include pre/postmultiply() fns
- add docs
- add FloatBuffer.isPremultiplied()
4.0.0 (2022-09-27)
- update .blitCanvas(), .toImageData() (85e4e38)
- BREAKING CHANGE: add BlitCanvasOpts for optional .blitCanvas() args
- update .blitCanvas() impls
- update .toImageData() impls to accept pre-existing ImageData instance
- add ensureImageData() check
3.4.0 (2022-04-07)
- buffer method additions, internal checks (a70b3c1)
- add FloatBuffer.premultiply/postmultiply()
- add Int/FloatBuffer.fill()
3.3.0 (2021-12-13)
- add Canvas2DOpts, update canvas2d() (7ff99a2)
- add MAXIMA convolution kernels (d15caed)
- add
MAXIMA4_CROSS
,MAXIMA4_DIAG
- add
MAXIMA8
- add
- add 8/16/32bit support for defIndexed() (b20a924)
- add defIndexed8/16/32()
- update defIndexed() to decide about required bitdepth
- add/update docs strings
3.2.0 (2021-11-17)
- Using workspaces for local tools (bf7a404)
Improving the overall build ergonomics
- introduced a tools workspaces
- imported it in all needed packages/examples
- inclusive project root
- testrunner to binary (4ebbbb2) this commit reverts (partly) changes made in: ef346d7a8753590dc9094108a3d861a8dbd5dd2c overall purpose is better testament ergonomics: instead of having to pass NODE_OPTIONS with every invocation having a binary to handle this for us.
3.1.0 (2021-11-10)
- add IGrid2D impls, update ctors (3ac0327)
3.0.0 (2021-11-04)
- rename int buffer/format types (6be02f1)
- BREAKING CHANGE: rename int buffer/format types
- rename:
- PackedBuffer => IntBuffer
- PackedFormat/Spec => IntFormat/Spec
- PackedChannel/Spec => IntChannel/Spec
- replace static FloatBuffer.fromInt() with standalone fn floatBufferFromInt()
- add floatBufferFromImage()
- add floatBufferFromCanvas()
- update readme
- rename:
2.2.0 (2021-11-03)
- add flood fill functions (65796b9)
- add unsafe getters/setters (714d6f7)
- update IPixelBuffer and all impls
- add shape drawing fns (d1e284b)
- add drawLine(), drawLineWith()
- add drawCircle()
- add drawRect()
- update types (IGrid2D) (2fe8d4f)
- update
IPixelBuffer
to extend newIGrid2D
- deprecate
.pixels
property (use.data
) - add
.rowStride
getter for PackedBuffer
- update
2.1.0 (2021-10-13)
- add CORS config for imagePromise() (a5a2058)
2.0.1 (2021-10-13)
- update imports in all pkgs (5fa2b6f)
- add .js suffix for all relative imports
- update imports in all tests/pkgs (effd591)
2.0.0 (2021-10-12)
- major update of ALL pkgs (export maps, ESM only) (0d1d6ea)
- BREAKING CHANGE: discontinue CommonJS & UMD versions
- only ESM modules will be published from now on
- CJS obsolete due to ESM support in recent versions of node:
- i.e. launch NodeJS via:
node --experimental-specifier-resolution=node --experimental-repl-await
- in the node REPL use
await import(...)
instead ofrequire()
- UMD obsolete due to widespread browser support for ESM Also:
- normalize/restructure/reorg all package.json files
- cleanup all build scripts, remove obsolete
- switch from mocha to @thi.ng/testament for all tests
- restructure package (698130a)
- BREAKING CHANGE: migrate dither ops to new pkg @thi.ng/pixel-dither
- remove dither related types & functions
- remove PackedBuffer.dither()
- move internal helpers
- replace static PackedBuffer methods (8e5d2db)
- BREAKING CHANGE: replace static PackedBuffer methods w/ standalone functions
- add packedBufferFromImage()
- add packedBufferFromCanvas()
- remove deprecated buffer() ctor fn
- update all tests in all pkgs (8b582bc)
- update all to use @thi.ng/testament
- update imports (138571a)
- update deps & imports in various pkgs (e1cf29e)
- largely related to recent updates/restructuring of these packages:
- api
- defmulti
- errors
- logger
- largely related to recent updates/restructuring of these packages:
- dedupe defIndexed() internals (a4a3e61)
- replace closestColor() w/ argmin() from @thi.ng/distance
- update deps
- internal restructure (8a7ec9c)
- rename internals (055e799)
0.11.0 (2021-08-04)
- add DominantColorOpts (a57882b)
- add
filter
option to pre-filter eligible pixels
- add
0.10.3 (2021-06-08)
- dedupe defKernel() internals (084c84a)
- extract declOffset() helper to dedupe offset var declarations
0.10.2 (2021-04-24)
- modulo handling in samplers (6fcea12)
- reflecting change in @thi.ng/math
0.10.0 (2021-04-19)
- add dominantColors(), update deps (ad0617e)
- add @thi.ng/k-means dependency
0.9.0 (2021-04-03)
- add IToImageData & impls (3172e1e)
- update/fix convolution, add LANCZOS (eadefda)
- remove
pad
option (now always enabled) - add
offset
option - update defKernel() codegen to consider/repeat edge pixels
- update/fix defLargeKernel() for even sized kernels and consider edges
- add LANCZOS kernel gen
- remove
- add imagePyramid() iterator (7f77e07)
- add .upsize() impls, fix convolve() (08f0d7c)
- add Packed/FloatBuffer.upsize()
- fix channel offset handling in convolve()
0.8.1 (2021-03-20)
- update convolve() for even kernel sizes (b086224)
- since even kernel sizes are more left/top centric, update max iteration limits to ensure right colum & bottom row will be processed
- dedupe sampling functions (2643bdd)
0.8.0 (2021-03-17)
- add defIndexed() HOF pixel format (c13a568)
- add defSampler(), resize() (aa71eb7)
- replace
Filter
&Wrap
enums w/ type aliases (#256) - add HOF
defSampler()
w/ impls for PackedBuffer only (so far) - add
resize()
(also PackedBuffer only)
- replace
- add bicubic samplers, fix resize() (951fa9e)
- add float format samplers, update various types (6f9dae6)
- add IResizable and implement for Packed/FloatBuffer
- add FloatBuffer.invert()
- fix .forEach() impls (esp. FloatBuffer), use return values
- update IBlit, IBlend, IInvert generics
- convert resize() into class method (1c4dcaa)
- move
IntSampler
,FloatSampler
types to api.ts - migrate
resize()
toPackedBuffer.resize()
- replace
PackedBuffer.downsample()
w/ newPackedBuffer.scale()
- update resize filter arg to also accept custom sampler
- move
- simplify bilinearABGR() (1ec724c)
0.7.0 (2021-03-03)
- add gradientImage() & FLOAT_NORMAL format (78683b7)
- add convolve() & preset kernels (6a31dc3)
- add normalMap(), add more kernels (f32686d)
- replace gradientImage() w/ normalMap()
- add GRADIENT_X/Y, HIGHPASS3 preset kernels
- add defKernel() kernel fn codegen (25b97a3)
- add step size support for normalMap() (ab72a79)
- add 5x5 kernel presets (56f96f4)
- update/extend/refactor convolveChannel/Image() (6692865)
- add new convolution related types
- add pooling & stride support (convolve(), defKernel())
- add POOL_* filter presets
- update normalMap()
- add IEmpty impls for Float/PackedBuffer (46ac1a1)
- add/update buffer factory fns (ba38e13)
- add fn overrides to simplify userland API
- add POOL_THRESHOLD preset (5f1c1de)
- update PackedBuffer.fromCanvas() (3bdb086)
- add support for format conversion
- simplify .fromImage()
- add defLargeKernel(), conv presets (9c71165)
- add HOF GAUSSIAN kernel factory
- fix internal K var naming in defKernelx
- migrate interfaces to api.ts (0e3a742)
0.6.1 (2021-02-20)
- update IPixelBuffer, extract format defs (3416ff7)
- make IPixelBuffer fields readonly, expose stride
- move all format related defs to /format subdir
- update format defs, typed array handling (2b06774)
- update ARGB8888, update deps (9b86922)
- re-use swapLane13() from @thi.ng/binary
- update readme
- split defFloatFormat(), extract helpers (c9ade11)
0.6.0 (2021-01-13)
- add downsample() for both buffer types (0b9b0fa)
0.5.0 (2021-01-02)
- add FLOAT_HSVA format, update FloatFormatSpec (118c4ed)
- update FloatFormatSpec & defFloatFormat() to support manual conversions
- add FloatBuffer.fromPacked() (abd1ca8)
- implement IPixelBuffer
- implement IPixelBuffer for PackedBuffer (2dcbde5)
0.4.9 (2020-12-07)
- update type-only imports in various tests/pkgs (3fd9c24)
- update type-only imports in remaining pkgs (b22aa30)
0.4.7 (2020-11-24)
- update destructuring (01aebd8)
0.4.5 (2020-09-13)
- update imports, use new Fn types (213ec33)
0.4.0 (2020-07-22)
- add flipY() (a5593c0)
0.3.0 (2020-05-29)
- add FloatBuffer and float format support (d6c490f)
- add dither support for int buffers/formats (4475fc1)
- add/update float formats, tests (6eb1f67)
0.2.0 (2020-05-19)
- update canvas2d(), imageCanvas() (65929a2)
- add opt parent arg to append canvas as child node
- add .copy(), update .blitCanvas() (f4b2c3e)
0.1.14 (2020-04-05)
- switch to non-const enums (99fb1e6)
0.1.9 (2020-02-25)
- update imports (7857750)
0.1.4 (2019-09-21)
- clamp values in PackedChannel.setFloat() (ce78467)
0.1.3 (2019-08-21)
- update setChannel(), pre/postmultiply(), extract & re-use (17e5f3d)
0.1.0 (2019-07-31)
- initial import pixel buffer pkg (1836ea7)
- add invert, add/split interfaces, refactor blit fns (22a456a)
- (#106) add IBlend interface/impls, refactor IBlit (e068f46)
- add BlitOpts, update .blit() args
- add IBlend impls for ABGRBuffer, ARGBBuffer, RGBAFloatBuffer
- update blit1(), blitStrided()
- add blendInt(), blendFloat()
- (#106) add Uint16Buffer, update IColorChannel, add Channel.GRAY (3088646)
- update canvasPixels() (5ea200d)
- complete rewrite/simplify/extend using format descriptors (cde7bf9)
- remove all existing buffer impls
- add PackedBuffer as currently only buffer type
- add preset buffer formats:
- GRAY8
- GRAY_ALPHA88
- ARGB4444
- ARGB1555
- RGB565
- RGB888
- ARGB8888
- BGR888
- ABGR8888
- add defPackedFormat() to define & compile new formats
- add various codegen utils
- add new types / interfaces
- add channel float accessors, update PackedChannel (b4168f8)
- add precomputed masks and get/setFloat to PackedChannel
- refactor code gens
- add PackedBuffer.get/setChannelAt()
- add ensureChannel() helper
- add pre/postmultiply & isPremultiplied checks (969d6b8)
- add porter-duff dep
- update readme
- updat setChannel, add ALPHA8, update readme (899f1a3)
- setChannel now supports format conversion
- add PackedBuffer.fromCanvas(), update readme (ac283ee)
- add buffer() syntax sugar, PackedBuffer.forEach (bc17ac9)
- add 16bit formats, add docs, update readme (5d72c37)