【发布时间】:2018-11-05 13:16:49
【问题描述】:
我想访问 SVG 可能使用的所有颜色。我玩过convert,但想了解如何找出 SVG 可能包含的独特颜色。
这是我写给convert 的PHP 代码,用来尝试确定位图是否包含颜色,但是它非常有限:
/**
* containsColor
*
* @see https://www.imagemagick.org/discourse-server/viewtopic.php?t=19580&start=15
* @see https://superuser.com/questions/508472/how-to-recognize-black-and-white-images
* @see https://www.imagemagick.org/discourse-server/viewtopic.php?t=19580
* @access public
* @static
* @param string $path
* @return bool
*/
public static function containsColor(string $path): bool
{
$commands = array(
'convert ' .
($path) .' ' .
'-format "%[colorspace]" info:'
);
$command = implode(' && ', $commands);
$response = exec($command);
$color = strtolower($response) !== 'gray';
return $color;
}
【问题讨论】:
-
如果有渐变怎么办?是停止之间的无限数量的颜色。 feColorMatrix 滤镜怎么样?
-
@RobertLongson 理想情况下,如果定义了渐变(例如s3-us-west-2.amazonaws.com/app.local.getstencil.com/…),它将被标记为“彩色”。
标签: svg vector imagemagick inkscape