只需使用 ImageMagick 的普通 linux 版本 - 调用它使用exec()
如果您无权在您的服务器上安装东西,那么它会变得有点复杂。如果你安装了 GD(你可能已经安装了),你可以使用http://php.net/imagecreatefrompng来获取像素数据。然后,您可以手动创建您要查找的内容,如下所示:
$file = "/path/to/png.png";
$image = ImageCreateFromPng($file);
list($w, $h) = GetImageSize($file);
$pixels = array();
for ($x=0; $x<$w; $x++){
for ($y=0; $y<$h; $y++){
$rgb = ImageColorAt($image, $x, $y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$pixels = '0x'.sprintf('%02x', ($r+$g+$b)/3); # store the average of r/g/b
}
}
echo "static unsigned char __attribute__ ((progmem)) adalogo [] = {\n";
echo implode(', ', $pixels);
echo "};\n";
您需要首先获取实际的 PNG - 如果您启用了文件包装器,您可以通过 URL 获取它:
$file = "http://url.com/to/png.png";
$image = ImageCreateFromPng($file);
或者先在命令行使用 PHP 抓取图像:
$file = "/path/to/png.png";
exec("php /path/to/script.php > $file");
$image = ImageCreateFromPng($file);