相关疑难解决方法(0)

使用PHP检测图像中的主要颜色

我试图复制Dribbble.com检测图像中主要颜色的功能.在下图中,您可以看到Dribbble.com的屏幕截图,其中显示了左侧图像中的8种主要颜色.这是图片中的实际页面http://dribbble.com/shots/528033-Fresh-Easy?list=following

我需要能够在PHP中执行此操作,一旦我获得了我需要的颜色,我将它们保存到数据库中,因此不需要在每个页面加载时运行处理.

在对如何从图像中获取这些颜色的一些研究之后,有些人说你只是逐个像素地检查图像,然后保存最多出现的颜色.其他人说它还有更多,并且获得最常见的颜色不会产生预期的效果.他们说你需要量化图像/颜色(此时我迷失了).

在下面的图像中,下面的Dribble镜头是一个Javascript库,可以执行相同的操作,可以在此处查看该页面http://lokeshdhakar.com/projects/color-thief/

查看该页面的来源,我可以看到有一个名为Javascript的文件quantize.js,结果非常好.所以我希望能够使用PHP和GD/ImageMagick来完成Javascript库的功能

在此输入图像描述


我发现这个函数将使用PHP返回颜色和计数,但结果与上面的Javascript版本和Dribble结果不同

/**
 * Returns the colors of the image in an array, ordered in descending order, where the keys are the colors, and the values are the count of the color.
 *
 * @return array
 */
function Get_Color()
{
    if (isset($this->image))
    {
        $PREVIEW_WIDTH    = 150;  //WE HAVE TO RESIZE THE IMAGE, BECAUSE WE ONLY NEED THE MOST SIGNIFICANT COLORS.
        $PREVIEW_HEIGHT   = 150;
        $size = GetImageSize($this->image);
        $scale=1;
        if ($size[0]>0)
        $scale = min($PREVIEW_WIDTH/$size[0], …
Run Code Online (Sandbox Code Playgroud)

php gd imagemagick image-processing

32
推荐指数
3
解决办法
4万
查看次数

标签 统计

gd ×1

image-processing ×1

imagemagick ×1

php ×1