import { Color } from './types' ; param color export const color2HEX = ( color ) => { const { red , green , blue , alpha } = color ; const hex = "#" + ( ( 1 << 24 ) + ( red << 16 ) + ( green << 8 ) + blue ) . toString ( 16 ) . slice ( 1 ) ; return { hex : hex . toUpperCase ( ) , alpha : `${ Math . round ( alpha * 100 ) }%` , } ; } ; param color export const color2AHEX = ( color ) => { const { red , green , blue , alpha } = color ; const hex = ( ( 1 << 24 ) + ( red << 16 ) + ( green << 8 ) + blue ) . toString ( 16 ) . slice ( 1 ) ; const a = ( ( 1 << 8 ) + Math . round ( alpha * 255 ) ) . toString ( 16 ) . slice ( 1 ) ; return "#" + ( a + hex ) . toUpperCase ( ) ; } ; param color export const color2HEXA = ( color ) => { const { red , green , blue , alpha } = color ; const hex = ( ( 1 << 24 ) + ( red << 16 ) + ( green << 8 ) + blue ) . toString ( 16 ) . slice ( 1 ) ; const a = ( ( 1 << 8 ) + Math . round ( alpha * 255 ) ) . toString ( 16 ) . slice ( 1 ) ; return `#${ hex . slice ( 0 , 6 ) . toLowerCase ( ) }${ a . toUpperCase ( ) }` ; } ; param color export const color2RGBA = ( color ) => { const { red , green , blue , alpha } = color ; return `${ red },${ green },${ blue },${ alpha }` ; } ; param color export const color2HSLA = ( color ) => { let { red , green , blue , alpha } = color ; red /= 255 , green /= 255 , blue /= 255 ; const max = Math . max ( red , green , blue ) , min = Math . min ( red , green , blue ) ; let h , s , l = ( max + min ) / 2 ; if ( max == min ) { h = s = 0 ; } else { const d = max - min ; s = l > 0.5 ? d / ( 2 - max - min ) : d / ( max + min ) ; switch ( max ) { case red : h = ( green - blue ) / d + ( green < blue ? 6 : 0 ) ; break ; case green : h = ( blue - red ) / d + 2 ; break ; case blue : h = ( red - green ) / d + 4 ; break ; } h /= 6 ; } return `${ Math . round ( h * 360 ) },${ Math . round ( s * 100 ) }%,${ Math . round ( l * 100 ) }%,${ alpha }` ; } ; param color export const colorTrans = ( color ) => { const hex = color2HEX ( color ) ; const ahex = color2AHEX ( color ) ; const hexa = color2HEXA ( color ) ; const rgba = color2RGBA ( color ) ; const hsla = color2HSLA ( color ) ; return [ { type : 'HEX' , value : hex . hex , alpha : hex . alpha } , { type : 'AHEX' , value : ahex , } , { type : 'HEXA' , value : hexa , } , { type : 'RGBA' , value : rgba , } , { type : 'HSLA' , value : hsla , } ] ; } ;