找到与照片匹配的颜色的脚本

时间:2015-02-17 14:42:50

标签: image colors

我是平面设计师,我经常制作网站。我正在寻找一个脚本(可能最终甚至是软件)找到一个匹配的照片颜色。这个页面的一个很好的例子是:https://unsplash.com/grid如果你的鼠标在图片上显示它显示匹配的颜色。这是我展示此问题的屏幕截图:https://dl.dropboxusercontent.com/u/65947165/qu1.png

1 个答案:

答案 0 :(得分:1)

我会使用ImageMagick并通过将图像大小调整为1像素x 1像素并将该像素转换为文本来找到平均颜色,如下所示:

convert photo-1414637104192-f9ab9a0ee249.jpg -resize 1x1! -colorspace RGB txt:
# ImageMagick pixel enumeration: 1,1,255,rgb
0,0: (0,21,3)  #001503  rgb(0,21,3)

所以rgb(0,21,3)是绿叶,你的例子中有一滴水。你可以像sRGB一样:

convert photo-1418479631014-8cbf89db3431.jpg -resize 1x1! txt:
# ImageMagick pixel enumeration: 1,1,255,srgb
0,0: (141,109,91)  #8D6D5B  srgb(141,109,91)

如果你想把它作为一个图像,你会这样做:

convert photo-1414637104192-f9ab9a0ee249.jpg -resize 1x1! -scale 1000 output.jpg

enter image description here

这是您的示例页面中的第一张图片......

enter image description here

我真的不会说PHP,但这应该很接近:

<?php 
$image = new Imagick('input.jpg'); 
$image->resizeImage(1,1,Imagick::FILTER_BOX,1);
$pixel = $image->getImagePixelColor(0,0); 
print $pixel->getColorAsString();
$colors = $pixel->getColor(); 
print_r($colors);
?>

<强>输出

srgb(55.259%,42.2065%,34.9279%)Array
(
    [r] => 141
    [g] => 108
    [b] => 89
    [a] => 1
)