只需使用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);
來源
2012-04-03 01:46:40
Cal
我看到你的出發點 - 但肯定要做到這一點我必須有我的服務器上安裝的ImageMagick對Linux和恐怕我不能那樣做因爲我在共享託管服務。任何方式呢? – Alfo 2012-04-03 15:46:14
用可能的解決方案更新了我的答案 – Cal 2012-04-03 17:15:24
哇,非常感謝。當我回家時我會測試這個。 – Alfo 2012-04-04 15:57:51