@@ -275,7 +275,7 @@ public static function convertHTMLColorToDec($hcolor, &$spotc, $defcol=array('R'
275275 $ color = strtolower ($ color );
276276 // check for javascript color array syntax
277277 if (strpos ($ color , '[ ' ) !== false ) {
278- if (preg_match ('/[\[][\" \'](t|g|rgb|cmyk)[\" \'][\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\]]/ ' , $ color , $ m ) > 0 ) {
278+ if (preg_match ('/[\[][\" \'](t|g|rgba| rgb|cmyk)[\" \'][\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\]]/ ' , $ color , $ m ) > 0 ) {
279279 $ returncolor = array ();
280280 switch ($ m [1 ]) {
281281 case 'cmyk ' : {
@@ -286,7 +286,8 @@ public static function convertHTMLColorToDec($hcolor, &$spotc, $defcol=array('R'
286286 $ returncolor ['K ' ] = max (0 , min (100 , (floatval ($ m [5 ]) * 100 )));
287287 break ;
288288 }
289- case 'rgb ' : {
289+ case 'rgb ' :
290+ case 'rgba ' : {
290291 // RGB
291292 $ returncolor ['R ' ] = max (0 , min (255 , (floatval ($ m [2 ]) * 255 )));
292293 $ returncolor ['G ' ] = max (0 , min (255 , (floatval ($ m [3 ]) * 255 )));
@@ -317,6 +318,25 @@ public static function convertHTMLColorToDec($hcolor, &$spotc, $defcol=array('R'
317318 if (strlen ($ color ) == 0 ) {
318319 return $ defcol ;
319320 }
321+ // RGBA ARRAY
322+ if (substr ($ color , 0 , 4 ) == 'rgba ' ) {
323+ $ codes = substr ($ color , 5 );
324+ $ codes = str_replace (') ' , '' , $ codes );
325+ $ returncolor = explode (', ' , $ codes );
326+ // remove alpha component
327+ array_pop ($ returncolor );
328+ foreach ($ returncolor as $ key => $ val ) {
329+ if (strpos ($ val , '% ' ) > 0 ) {
330+ // percentage
331+ $ returncolor [$ key ] = (255 * intval ($ val ) / 100 );
332+ } else {
333+ $ returncolor [$ key ] = intval ($ val ); /* floatize */
334+ }
335+ // normalize value
336+ $ returncolor [$ key ] = max (0 , min (255 , $ returncolor [$ key ]));
337+ }
338+ return $ returncolor ;
339+ }
320340 // RGB ARRAY
321341 if (substr ($ color , 0 , 3 ) == 'rgb ' ) {
322342 $ codes = substr ($ color , 4 );
0 commit comments