Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Get the inverse of a hex color in Ruby (See related posts)

This method will return the inverse of a hex color, which is useful if you want to make sure that your text will show up on a colored background.

def invert_color(color)
  color.gsub!(/^#/, '')
  sprintf("%X", color.hex ^ 0xFFFFFF)
end


Example:

invert_color('#c0c0c0') #=> "3F3F3F"


Limitations:

Doesn't handle named colors or 3 digit colors (i.e. #FFF == #FFFFFF)


Comments on this post

pjh posts on Sep 15, 2005 at 06:42
def invert_color(color)
color.gsub!(/^#/, '')
color += color if color.length == 3
sprintf("%X", color.hex ^ 0xFFFFFF)
end

that should take care of the 3 letter hex cases...

You need to create an account or log in to post comments to this site.


Click here to browse all 5143 code snippets

Related Posts