Просто используйте обычную Linux-версию ImageMagick - назовите ее, используя 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);