Я использовал resize_to_fill до размера [1,1], таким образом уменьшая изображение до одного пикселя, содержащего, как правило, средний цвет всего изображения (при условии, что изображение не имеет огромного расхождения между высотой и шириной, конечно).
Сейчас я пытаюсь получить цвет этого одиночного пикселя в шестнадцатеричном формате.
Из окна терминала я могу запустить команду конвертирования следующим образом:
convert image.png txt:
# ImageMagick pixel enumeration: 1,1,255,rgb
0,0: (154,135,116) #9A8774 rgb(154,135,116)
Однако я не уверен, как можно выполнить эту команду из приложения во время раздела before_save модели, которой принадлежит изображение.
Изображение загружено и прикреплено с использованием carrierwave
Пока я нашел изображение:
image = MiniMagick::Image.read(File.open(self.image.path))
Но я не совсем уверен, как действовать дальше.