This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const color_distance = ([ L1, a1, b1 ], [ L2, a2, b2 ] ) => Math.hypot( L1 - L2, a1 - a2, b1 - b2 ); | |
| const linear = x => x >= 0.04045 ? ((x + 0.055) / (1 + 0.055)) ** 2.4 : x / 12.92; | |
| const gamma = x => x >= 0.0031308 ? 1.055 * x ** (1 / 2.4) - 0.055 : 12.92 * x; | |
| const clamp = x => Math.min ( 255, Math.max ( 0, x ) ); | |
| const multiply = (a, b) => |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Matrices multiply | |
| const multiply = (a, b) => a.map((_, r) => b[0].map((_, c) => a[r].reduce((s,_,i) => s + a[r][i] * b[i][c], 0))); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| onmessage = ({ data: { data, width, height } }) => { | |
| const add = (d, i, v) => { | |
| if (i >= d.length) return; | |
| d[i] += v; | |
| }; | |
| const w = width * 4; | |
| let i = 0; | |
| for (let y = 0; y < height; y++) { | |
| for (let x = 0; x < width; x++, i += 4) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| onmessage = ({ data: { data, width, height } }) => { | |
| const thresholdMap = [ | |
| [15, 135, 45, 165], | |
| [195, 75, 225, 105], | |
| [60, 180, 30, 150], | |
| [240, 120, 210, 90], | |
| ]; | |
| let min = 255, | |
| max = 0, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| onmessage = ({ data: { data, width, height } }) => { | |
| const add = (d, i, v) => { | |
| if (i >= d.length) return; | |
| d[i] += v; | |
| }; | |
| let i = 0, | |
| w = width * 4; | |
| for (let y = 0; y < height; y++) { | |
| for (let x = 0; x < width; x++, i += 4) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const s2l = c => (c > 0.04045 ? ((c + 0.055) / 1.055) ** 2.4 : c / 12.92); | |
| const l2s = c => (c > 0.0031308 ? 1.055 * Math.pow(c, 1 / 2.4) - 0.055 : 12.92 * c); | |
| const LINEAR = new Array(256).fill().map((_, i) => s2l(i / 255)); | |
| onmessage = ({ data: { srcData, srcWidth, srcHeight, dstWidth, dstHeight } }) => { | |
| const { ceil, floor, abs, min, hypot } = Math; | |
| const ratioH = srcHeight / dstHeight; | |
| const ratioW = srcWidth / dstWidth; | |
| const halfRatioW = ceil(ratioW / 2); | |
| const halfRatioH = ceil(ratioH / 2); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| export function createWorker(callable) { | |
| const code = `(${callable.toString()})()`; | |
| const blob = new Blob([code], { type: 'text/javascript' }); | |
| const url = URL.createObjectURL(blob); | |
| const worker = new Worker(url); | |
| URL.revokeObjectURL(url); | |
| return worker; | |
| } | |
| export function executeWorker(callable, data) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # __ __ | |
| # ____ ____ _________ ____ ___ ____ / /_ _____/ /_ | |
| # /_ / / __ \/ ___/ __ \/ __ `__ \/ __ \/ __/ / ___/ __ \ | |
| # / /_/ /_/ / / / /_/ / / / / / / /_/ / /__ (__ ) / / / | |
| # /___/ .___/_/ \____/_/ /_/ /_/ .___/\__(_)____/_/ /_/ | |
| # /_/ /_/ | |
| PS1='\u@\h \W\$ ' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Object.defineProperties(EventTarget.prototype, { | |
| on: { value: EventTarget.prototype.addEventListener }, | |
| off: { value: EventTarget.prototype.removeEventListener }, | |
| emit: { | |
| value: function (eventType, eventData) { | |
| let event = new Event(eventType); | |
| if (eventData) { | |
| Object.assign(event, eventData, { details: eventData }); | |
| } | |
| this.dispatchEvent(event); |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.