feat: part 2 of redesign of open image dialog

This commit is contained in:
trafficlunar 2024-12-28 21:46:52 +00:00
parent 9833f8a63c
commit 6996c9a310
6 changed files with 73 additions and 24 deletions

View file

@ -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;
},