Skip to content
This repository has been archived by the owner on Feb 20, 2023. It is now read-only.

jnylen/shrine-color

Repository files navigation

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

Releases

No releases published

Packages

No packages published

Languages