Использовать внешнюю программу на PHP на образе в памяти

У меня есть строковое изображение (png), которое я могу преобразовать в ресурс изображения с помощью imagecreatefromstring(),
Я знаю, что могу сжать это с imagepng() но я бы хотел пойти дальше, используя Optipng.
Optipng принять файл в качестве входных данных.

Итак, как я могу использовать Optipng или любой другой инструмент командной строки в PHP на образе в памяти? Запись на диск образа сначала не вариант.

2

Решение

Вы должны сохранить его в какое-то временное место, выполнить требуемую операцию и при необходимости прочитать его обратно в строку.
Код ниже позволяет сохранить данные во временном файле:

   $tmp = tempnam(sys_get_temp_dir(), 'tmp_img') . '.png';
file_put_contents($tmp, $data);

$command = "optipng -o7 ${tmp}>/dev/null; echo $?";
$retCode = shell_exec($command);
if ($retCode == 0) {
$data = file_get_contents($tmp);
} else {
die("error");
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]