UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 4.08 kB
{"version":3,"file":"cmyk.mjs","sources":["../../../../src/_common/js/color-picker/cmyk.ts"],"sourcesContent":["/**\n * rgb 转 cmyk\n * @param red\n * @param green\n * @param blue\n * @returns\n */\nexport const rgb2cmyk = (red: number, green: number, blue: number) => {\n let computedC = 0;\n let computedM = 0;\n let computedY = 0;\n let computedK = 0;\n\n const r = parseInt(`${red}`.replace(/\\s/g, ''), 10);\n const g = parseInt(`${green}`.replace(/\\s/g, ''), 10);\n const b = parseInt(`${blue}`.replace(/\\s/g, ''), 10);\n\n if (r === 0 && g === 0 && b === 0) {\n computedK = 1;\n return [0, 0, 0, 1];\n }\n\n computedC = 1 - r / 255;\n computedM = 1 - g / 255;\n computedY = 1 - b / 255;\n\n const minCMY = Math.min(computedC, Math.min(computedM, computedY));\n computedC = (computedC - minCMY) / (1 - minCMY);\n computedM = (computedM - minCMY) / (1 - minCMY);\n computedY = (computedY - minCMY) / (1 - minCMY);\n computedK = minCMY;\n\n return [computedC, computedM, computedY, computedK];\n};\n\n/**\n * cmyk 转 rgb\n * @param cyan\n * @param magenta\n * @param yellow\n * @param black\n * @returns\n */\nexport const cmyk2rgb = (cyan: number, magenta: number, yellow: number, black: number) => {\n let c = cyan / 100;\n let m = magenta / 100;\n let y = yellow / 100;\n const k = black / 100;\n\n c = c * (1 - k) + k;\n m = m * (1 - k) + k;\n y = y * (1 - k) + k;\n\n let r = 1 - c;\n let g = 1 - m;\n let b = 1 - y;\n\n r = Math.round(255 * r);\n g = Math.round(255 * g);\n b = Math.round(255 * b);\n return {\n r,\n g,\n b,\n };\n};\n\nconst REG_CMYK_STRING = /cmyk\\((\\d+%?),(\\d+%?),(\\d+%?),(\\d+%?)\\)/;\n\nconst toNumber = (str: string) => Math.max(0, Math.min(255, parseInt(str, 10)));\n\n/**\n * 输入色转rgb\n * @param input\n * @returns\n */\nexport const cmykInputToColor = (input: string) => {\n if (/cmyk/i.test(input)) {\n const str = input.replace(/\\s/g, '');\n const match = str.match(REG_CMYK_STRING);\n const c = toNumber(match[1]);\n const m = toNumber(match[2]);\n const y = toNumber(match[3]);\n const k = toNumber(match[4]);\n const { r, g, b } = cmyk2rgb(c, m, y, k);\n return `rgb(${r}, ${g}, ${b})`;\n }\n return input;\n};\n"],"names":["computedK","computedC","computedM","computedY","r","g","b"],"mappings":";;;;;;AAOO,sCAAA,IAAA,QAAA,GAAA,SAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA;;;;;AAMC,EAAA,IAAA,CAAA,GAAA,QAAA,CAAA,EAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,OAAA,CAAA,KAAA,EAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA;AACA,EAAA,IAAA,CAAA,GAAA,QAAA,CAAA,EAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA,OAAA,CAAA,KAAA,EAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA;AACA,EAAA,IAAA,CAAA,GAAA,QAAA,CAAA,EAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,OAAA,CAAA,KAAA,EAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;AAGQA,IAAAA,SAAAA,GAAAA,CAAAA,CAAAA;;AAEd,GAAA;AAEAC,EAAAA,SAAAA,GAAAA,CAAAA,GAAAA,CAAAA,GAAAA,GAAAA,CAAAA;AACAC,EAAAA,SAAAA,GAAAA,CAAAA,GAAAA,CAAAA,GAAAA,GAAAA,CAAAA;AACAC,EAAAA,SAAAA,GAAAA,CAAAA,GAAAA,CAAAA,GAAAA,GAAAA,CAAAA;AAEM,EAAA,IAAA,MAAA,GAAA,IAAA,CAAA,GAAA,CAAA,SAAA,EAAA,IAAA,CAAA,GAAA,CAAA,SAAA,EAAA,SAAA,CAAA,CAAA,CAAA;;;;AAIMH,EAAAA,SAAAA,GAAAA,MAAAA,CAAAA;;AAGd,EAAA;AAUO,IAAA,QAAA,GAAA,SAAA,QAAA,CAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA;AACL,EAAA,IAAA,CAAA,GAAA,IAAA,GAAA,GAAA,CAAA;AACA,EAAA,IAAA,CAAA,GAAA,OAAA,GAAA,GAAA,CAAA;AACA,EAAA,IAAA,CAAA,GAAA,MAAA,GAAA,GAAA,CAAA;AACA,EAAA,IAAA,CAAA,GAAA,KAAA,GAAA,GAAA,CAAA;;;;AAMA,EAAA,IAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA;AACA,EAAA,IAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA;AACA,EAAA,IAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA;;;;;AAMEI,IAAAA,CAAAA,EAAAA,CAAAA;AACAC,IAAAA,CAAAA,EAAAA,CAAAA;AACAC,IAAAA,CAAAA,EAAAA,CAAAA;;AAEJ,EAAA;AAEA,IAAA,eAAA,GAAA,yCAAA,CAAA;AAEA,IAAA,QAAA,GAAA,SAAA,QAAA,CAAA,GAAA,EAAA;AAAkC,EAAA,OAAA,IAAA,CAAA,GAAA,CAAA,CAAA,EAAA,IAAA,CAAA,GAAA,CAAA,GAAA,EAAA,QAAA,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAA4C,CAAA,CAAA;AAOvE,IAAA,gBAAA,GAAA,SAAA,gBAAA,CAAA,KAAA,EAAA;AACD,EAAA,IAAA,OAAA,CAAA,IAAA,CAAA,KAAA,CAAA,EAAA;;AAEI,IAAA,IAAA,KAAA,GAAA,GAAA,CAAA,KAAA,CAAA,eAAA,CAAA,CAAA;;;;;;;;;;AAOR,GAAA;AACO,EAAA,OAAA,KAAA,CAAA;AACT;;;;"}