Method: TCPDF#convertHTMLColorToDec
- Defined in:
- lib/tcpdf.rb
#convertHTMLColorToDec(color = "#FFFFFF") ⇒ Object Also known as: convert_html_color_to_dec
Returns an associative array (keys: R,G,B) from an html color name or a six-digit or three-digit hexadecimal color representation (i.e. #3FE5AA or #7FF).
- @param string :color
-
html color
- @return array
-
RGB color or empty array in case of error.
- @access public
7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 |
# File 'lib/tcpdf.rb', line 7672 def convertHTMLColorToDec(color = "#FFFFFF") color = color.gsub(/[\s]*/, '') # remove extra spaces color = color.downcase if !(dotpos = color.index('.')).nil? # remove class parent (i.e.: color.red) color = color[(dotpos + 1)..-1] end if color.length == 0 return [] end returncolor = ActiveSupport::OrderedHash.new # RGB ARRAY if color[0,3] == 'rgb' codes = color.sub(/^rgb\(/, '') codes = codes.gsub(')', '') returncolor = codes.split(',', 3) returncolor[0] = returncolor[0].to_i returncolor[1] = returncolor[1].to_i returncolor[2] = returncolor[2].to_i return returncolor end # CMYK ARRAY if color[0,4] == 'cmyk' codes = color.sub(/^cmyk\(/, '') codes = codes.gsub(')', '') returncolor[0] = returncolor[0].to_i returncolor[1] = returncolor[1].to_i returncolor[2] = returncolor[2].to_i returncolor[3] = returncolor[3].to_i return returncolor end # COLOR NAME if color[0].chr != "#" # decode color name if @@webcolor[color] color_code = @@webcolor[color] else return [] end else color_code = color.sub(/^#/, "") end # RGB VALUE case color_code.length when 3 # three-digit hexadecimal representation r = color_code[0] g = color_code[1] b = color_code[2] returncolor['R'] = (r + r).hex returncolor['G'] = (g + g).hex returncolor['B'] = (b + b).hex when 6 # six-digit hexadecimal representation returncolor['R'] = color_code[0,2].hex returncolor['G'] = color_code[2,2].hex returncolor['B'] = color_code[4,2].hex else returncolor = [] end return returncolor end |