mirror of
https://github.com/trafficlunar/blockmatic.git
synced 2026-06-28 06:34:13 +00:00
feat: part 2 of redesign of open image dialog
This commit is contained in:
parent
9833f8a63c
commit
6996c9a310
6 changed files with 73 additions and 24 deletions
|
|
@ -1,8 +1,16 @@
|
|||
export const findBlockFromRgb = (data: BlockData, r: number, g: number, b: number, a: number): string => {
|
||||
return Object.entries(data).reduce(
|
||||
(closestBlock, [block, data]) => {
|
||||
import _blockData from "@/data/blocks/data.json";
|
||||
const blockData: BlockData = _blockData;
|
||||
|
||||
export const findBlockFromRgb = (data: BlockData | string[], r: number, g: number, b: number, a: number): string => {
|
||||
const source = Array.isArray(data) ? Object.entries(blockData).filter(([block]) => data.includes(block)) : Object.entries(data);
|
||||
|
||||
return source.reduce(
|
||||
(closestBlock, [block, blockData]) => {
|
||||
const distance = Math.sqrt(
|
||||
Math.pow(r - data.color[0], 2) + Math.pow(g - data.color[1], 2) + Math.pow(b - data.color[2], 2) + Math.pow(a - data.color[3], 2)
|
||||
Math.pow(r - blockData.color[0], 2) +
|
||||
Math.pow(g - blockData.color[1], 2) +
|
||||
Math.pow(b - blockData.color[2], 2) +
|
||||
Math.pow(a - blockData.color[3], 2)
|
||||
);
|
||||
return distance < closestBlock.distance ? { block, distance } : closestBlock;
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue