diff --git a/src/App.svelte b/src/App.svelte index c86d84d..0c85d92 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -27,6 +27,22 @@ return [c || 0, m || 0, y || 0, Math.round(k * 100)]; } + function stringToRgb(input: string): number[] | undefined { + if (input.startsWith("#")) { + let parts = input.match(/([0-f0-F]){2}/g); + if (!parts || parts.length != 3) return undefined; + return parts.map((e) => parseInt(e, 16)); + } else if (input.startsWith("rgb(")) { + let parts = input.match(/[0-9]{1,3}/g); + if (!parts || parts.length != 3) return undefined; + return parts.map((e) => parseInt(e)); + } else if (input.startsWith("cmyk(")) { + let parts = input.match(/[0-9]{1,3}/g); + if (!parts || parts.length != 4) return undefined; + return cmykToRgb(parts.map((e) => parseInt(e))); + } + } + enum Mode { Rgb, Cmyk, @@ -130,6 +146,17 @@ } }} /> +