Как получить массив цветов из картинки?
есть такие картинки
как минимальным количества кода получить массив цветов в хекс формате из одной такой картинки ? ( на ruby)
[#0091C0, #70D6EC, #83B0E7]
или хеш чтобы соответствовал ,
@colors = [ "Aqua Splach Heather", "Crystal Blue Heather", "Navy Blue"]
к-во квадратиков на каждой картинке разное ( длина 56px)
Ответы (1 шт):
Автор решения: Nakilon
→ Ссылка
Взять gem ruby-vips.
Уменьшить в 56 раз (можно перепробовать разные kernel-ы).
Применить Vips::Image#to_a.
Взять первую строку и конвертировать каждый пиксель в hex.
Примерно так:
Vips::Image.
new_from_file("my_image.png").
resize(56, vscale: 56, kernel: :lanczos2).
to_a[0].
map{ |pixel| "#" + pixel.pack("c*").unpack("H*")[0] }
