Revision: 54745
                            
                                                            
                                    
                                        
Updated Code
                                    
                                    
                                                    
                        at January 10, 2012 11:39 by kellishaver
                            
                            Updated Code
def extract_colors(src)
    image = Magick::ImageList.new(src)
    colors = []
    q = image.quantize(7, Magick::RGBColorspace)
    palette = q.color_histogram.sort {|a, b| b[1] <=> a[1]}
    (0..6).each do |i|
        c = palette[i].to_s.split(',').map {|x| x[/\d+/]}
        c.pop
        c[0], c[1], c[2] = [c[0], c[1], c[2]].map { |s| 
            s = s.to_i
            if s / 255 > 0 # not all ImageMagicks are created equal....
                s = s / 255
            end
            s = s.to_s(16)
            if s.size == 1 
                '0' + s
            else
                s
            end
        }
        colors << '#' + c.join('')
    end
    return colors
end
                                
                            Revision: 54744
                            
                                                            
                                    
                                        
Initial Code
                                    
                                    
                                                            
                                    
                                        
Initial URL
                                    
                                    
                                
                                                            
                                    
                                        
Initial Description
                                    
                                    
                                                            
                                    
                                        
Initial Title
                                    
                                    
                                                            
                                    
                                        
Initial Tags
                                    
                                    
                                                            
                                    
                                        
Initial Language
                                    
                                    
                                                    
                        at January 10, 2012 10:27 by kellishaver
                            
                            Initial Code
def extract_colors(src)
    image = Magick::ImageList.new(src)
    colors = []
    q = image.quantize(7, Magick::RGBColorspace)
    palette = q.color_histogram.sort {|a, b| b[1] <=> a[1]}
    (0..6).each do |i|
        c = palette[i].to_s.split(',').map {|x| x[/\d+/]}
        c.pop
        c[0], c[1], c[2] = [c[0], c[1], c[2]].map { |s| 
            s = s.to_i
            if s > 255 # not all ImageMagicks are created equal....
                s = s / 255
            end
            s = s.to_s(16)
            if s.size == 1 
                '0' + s
            else
                s
            end
        }
        colors << '#' + c.join('')
    end
    return colors
end
                                Initial URL
Initial Description
Takes an image (path or url) and extracts the 7 most common colors and returns their hex values.
Initial Title
Extract most common colors from an image
Initial Tags
images, color
Initial Language
Ruby