pixel-data-js 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.dev.cjs +1405 -70
- package/dist/index.dev.cjs.map +1 -1
- package/dist/index.dev.js +1355 -68
- package/dist/index.dev.js.map +1 -1
- package/dist/index.prod.cjs +1405 -70
- package/dist/index.prod.cjs.map +1 -1
- package/dist/index.prod.d.ts +581 -64
- package/dist/index.prod.js +1355 -68
- package/dist/index.prod.js.map +1 -1
- package/package.json +14 -3
- package/src/Algorithm/floodFillSelection.ts +229 -0
- package/src/Canvas/PixelCanvas.ts +31 -0
- package/src/Canvas/ReusableCanvas.ts +44 -0
- package/src/Canvas/_constants.ts +2 -0
- package/src/Clipboard/getImageDataFromClipboard.ts +42 -0
- package/src/Clipboard/writeImageDataToClipboard.ts +25 -0
- package/src/Clipboard/writeImgBlobToClipboard.ts +13 -0
- package/src/ImageData/{extractImageData.ts → extractImageDataPixels.ts} +21 -3
- package/src/ImageData/imageDataToAlphaMask.ts +35 -0
- package/src/ImageData/imageDataToDataUrl.ts +27 -0
- package/src/ImageData/imageDataToImgBlob.ts +31 -0
- package/src/ImageData/imgBlobToImageData.ts +52 -0
- package/src/ImageData/invertImageData.ts +10 -0
- package/src/ImageData/resizeImageData.ts +75 -0
- package/src/ImageData/{writeImageData.ts → writeImageDataPixels.ts} +22 -3
- package/src/Input/fileInputChangeToImageData.ts +37 -0
- package/src/Input/fileToImageData.ts +75 -0
- package/src/Input/getSupportedRasterFormats.ts +74 -0
- package/src/Mask/extractMask.ts +86 -0
- package/src/Mask/mergeMasks.ts +1 -6
- package/src/PixelData/blendColorPixelData.ts +9 -9
- package/src/PixelData/fillPixelData.ts +51 -12
- package/src/PixelData/invertPixelData.ts +16 -0
- package/src/PixelData/pixelDataToAlphaMask.ts +28 -0
- package/src/Rect/trimRectBounds.ts +118 -0
- package/src/_types.ts +37 -20
- package/src/blend-modes.ts +506 -66
- package/src/color.ts +6 -6
- package/src/globals.d.ts +2 -0
- package/src/index.ts +37 -1
package/src/color.ts
CHANGED
|
@@ -28,7 +28,7 @@ export function unpackColor(packed: Color32): RGBA {
|
|
|
28
28
|
|
|
29
29
|
const SCRATCH_RGBA: RGBA = { r: 0, g: 0, b: 0, a: 0 }
|
|
30
30
|
|
|
31
|
-
// uses a scratch arg for memory perf.
|
|
31
|
+
// uses a scratch arg for memory perf. be careful about re-use.
|
|
32
32
|
export function unpackColorTo(packed: Color32, scratch = SCRATCH_RGBA): RGBA {
|
|
33
33
|
scratch.r = (packed >>> 0) & 0xFF
|
|
34
34
|
scratch.g = (packed >>> 8) & 0xFF
|
|
@@ -68,23 +68,23 @@ export function lerpColor32(a: Color32, b: Color32, t: number): Color32 {
|
|
|
68
68
|
* Linearly interpolates between two 32-bit colors using integer fixed-point math.
|
|
69
69
|
* Highly optimized for image processing and real-time blitting. It processes
|
|
70
70
|
* channels in parallel using bitmasks (RB and GA pairs).
|
|
71
|
-
*
|
|
71
|
+
* **Note:** Subject to a 1-bit drift (rounding down) due to fast bit-shift division.
|
|
72
72
|
* @param src - The source (foreground) color as a 32-bit integer.
|
|
73
73
|
* @param dst - The destination (background) color as a 32-bit integer.
|
|
74
74
|
* @param w - The blend weight as a byte value from 0 to 255. Where 0 is 100% dst and 255 is 100% src
|
|
75
75
|
* @returns The blended 32-bit color.
|
|
76
76
|
*/export function lerpColor32Fast(src: Color32, dst: Color32, w: number): Color32 {
|
|
77
|
-
const invA = 255 - w
|
|
77
|
+
const invA = 255 - w
|
|
78
78
|
|
|
79
79
|
// Masking Red and Blue: 0x00FF00FF
|
|
80
80
|
// We process R and B in one go, then shift back down
|
|
81
|
-
const rb = (((src & 0x00FF00FF) * w + (dst & 0x00FF00FF) * invA) >>> 8) & 0x00FF00FF
|
|
81
|
+
const rb = (((src & 0x00FF00FF) * w + (dst & 0x00FF00FF) * invA) >>> 8) & 0x00FF00FF
|
|
82
82
|
|
|
83
83
|
// Masking Green and Alpha: 0xFF00FF00
|
|
84
84
|
// We shift down first to avoid overflow, then shift back up
|
|
85
|
-
const ga = ((((src >>> 8) & 0x00FF00FF) * w + ((dst >>> 8) & 0x00FF00FF) * invA) >>> 8) & 0x00FF00FF
|
|
85
|
+
const ga = ((((src >>> 8) & 0x00FF00FF) * w + ((dst >>> 8) & 0x00FF00FF) * invA) >>> 8) & 0x00FF00FF
|
|
86
86
|
|
|
87
|
-
return (rb | (ga << 8)) >>> 0 as Color32
|
|
87
|
+
return (rb | (ga << 8)) >>> 0 as Color32
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
// Convert 0xAABBGGRR to #RRGGBBAA
|
package/src/globals.d.ts
ADDED
package/src/index.ts
CHANGED
|
@@ -1,7 +1,43 @@
|
|
|
1
1
|
export * from './_types'
|
|
2
2
|
export * from './blend-modes'
|
|
3
3
|
export * from './color'
|
|
4
|
+
|
|
5
|
+
export * from './Algorithm/floodFillSelection'
|
|
6
|
+
|
|
7
|
+
export * from './Canvas/PixelCanvas'
|
|
8
|
+
export * from './Canvas/ReusableCanvas'
|
|
9
|
+
|
|
10
|
+
export * from './Clipboard/getImageDataFromClipboard'
|
|
11
|
+
export * from './Clipboard/writeImageDataToClipboard'
|
|
12
|
+
export * from './Clipboard/writeImgBlobToClipboard'
|
|
13
|
+
|
|
4
14
|
export * from './ImageData/copyImageData'
|
|
5
|
-
export * from './ImageData/
|
|
15
|
+
export * from './ImageData/extractImageDataPixels'
|
|
16
|
+
export * from './ImageData/imageDataToAlphaMask'
|
|
17
|
+
export * from './ImageData/imageDataToDataUrl'
|
|
18
|
+
export * from './ImageData/imageDataToImgBlob'
|
|
19
|
+
export * from './ImageData/imgBlobToImageData'
|
|
20
|
+
export * from './ImageData/invertImageData'
|
|
21
|
+
export * from './ImageData/resizeImageData'
|
|
6
22
|
export * from './ImageData/serialization'
|
|
23
|
+
export * from './ImageData/writeImageDataPixels'
|
|
24
|
+
|
|
25
|
+
export * from './Input/fileInputChangeToImageData'
|
|
26
|
+
export * from './Input/fileToImageData'
|
|
27
|
+
export * from './Input/getSupportedRasterFormats'
|
|
28
|
+
|
|
29
|
+
export * from './Mask/copyMask'
|
|
30
|
+
export * from './Mask/extractMask'
|
|
31
|
+
export * from './Mask/invertMask'
|
|
32
|
+
export * from './Mask/mergeMasks'
|
|
33
|
+
|
|
34
|
+
export * from './PixelData'
|
|
35
|
+
export * from './PixelData/applyMaskToPixelData'
|
|
36
|
+
export * from './PixelData/blendColorPixelData'
|
|
7
37
|
export * from './PixelData/blendPixelData'
|
|
38
|
+
export * from './PixelData/clearPixelData'
|
|
39
|
+
export * from './PixelData/fillPixelData'
|
|
40
|
+
export * from './PixelData/invertPixelData'
|
|
41
|
+
export * from './PixelData/pixelDataToAlphaMask'
|
|
42
|
+
|
|
43
|
+
export * from './Rect/trimRectBounds'
|