выполнение фоновых окон команды php - PullRequest
0 голосов
/ 05 февраля 2019

Я разрабатываю настольное приложение php, в котором мне нужно напечатать изображение человека в формате Floyd-Steinberg.Я фиксирую изображение в формате RGB и преобразую изображение в Floyd-Steinberg изображение с размытием.Я использую ImageMagick для преобразования изображения RGB в изображение с размытым изображением, где я передаю команды в командной строке Windows cmd, чтобы изображение было преобразовано и сохранено.Я хочу выполнить эту команду в своем главном приложении, поэтому, когда я нажимаю на изображение и даю команду печати, данная команда должна автоматически извлечь это изображение из базы данных и преобразовать это изображение, и оно должно быть напечатано в формате размывания. Я использую javascriptпередать все эти данные для печати данных через принтер Zebra. Обычно я пытался преобразовать изображение в размытое изображение, но не смог преобразовать изображение в grf изображение (ПРИМЕЧАНИЕ. Во время печати изображения не должно отображаться никаких подсказок)когда я нажимаю кнопку печати).

Так есть ли способ, которым я могу встроить приложение ImageMagick в свое приложение и передать команду для печати изображения

1 Ответ

0 голосов
/ 05 февраля 2019

Вам повезло, у меня просто есть класс, который вам может показаться интересным

https://github.com/ArtisticPhoenix/MISC/blob/master/BgProcess.php

Он способен выполнять фоновую команду как в Windows, так и в Linux (автоматически)

Соответствующий код Windows выглядит следующим образом:

    $WshShell = new \COM('WScript.Shell');
    $cmd = 'cmd /C '.$phpPath.' '.$script;
    $oExec = $WshShell->Run($cmd, 0, false);

Где $phpPath - это путь к файлу приложения php.exe, а $script - команда.Вышеупомянутый класс оборачивает это и фон linux put & at the end в дружественный интерфейс.

PS Код Windows занял немного времени для разработки ...:)

Класс очень простиспользуйте, например:

  new BgProcess('path to php file to run', 'arg1', 'arg2' ...);

И это все.Поскольку это команда оболочки, все «аргументы» должны быть строками.

Вы также можете найти эти полезные

https://github.com/ArtisticPhoenix/MISC/blob/master/ProcLock.php блокировка одного процесса, т.е. мьютекс для php.

https://github.com/ArtisticPhoenix/Cli Менеджер аргументов командной строки, который также находится на композиторе.

ура.

...