Skip to content
Finding the primary color in an image for Shrine.
Ruby
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib/shrine/plugins
spec
.gitignore
.tool-versions
.travis.yml
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
shrine-color.gemspec

README.md

Shrine Color

Get the dominant color of an image using colorscore (updated version by me). This can be used as a background color while an image is loading or search by color.

This is based on carrierwave-color by Sunny Ripert (sunny).

NOTE: The palettes/dominiant_color grabbed from images may differ between imagemagick versions.

Current version of imagemagick the test runs towards: 7.0.8-68

Requirements

This gem requires imagemagick (convert) and grabs colors via a command line. So mini_magick, etc. isn't required.

Installation

Add this line to your application's Gemfile:

gem "shrine-color"

And then call:

$ bundle

Add the plugin to your uploader

In your uploader, include the module and call the processor:

class ImageUploader < Shrine
  # plugin add_metadata should be loaded automagically.
  # otherwise add it here
  plugin :color

  # dominant color
  add_metadata :dominant_color do |io, context|
    dominant_color(io.path)
  end

  # palette color with version, color count and own array of colors.
  add_metadata :palette_color do |io, context|
    if context[:version] == :small
      palette_color(io.path, 3, ['ff0000', '00ff00', '0000ff'])
    end
  end
end

You can now use the code below to get a color:

## Dominant color
photo.image[:small].metadata["dominant_color"]
# or
photo.image[:small].dominant_color
You can’t perform that action at this time.