function _imageapi_imagemagick_convert_exec in ImageAPI 5
Same name and namespace in other branches
- 6 imageapi_imagemagick.module \_imageapi_imagemagick_convert_exec()
2 calls to _imageapi_imagemagick_convert_exec()
- _imageapi_imagemagick_build_version in ./imageapi_imagemagick.module
- _imageapi_imagemagick_convert in ./imageapi_imagemagick.module
- Calls the convert executable with the specified filter.
File
- ./imageapi_imagemagick.module, line 173
- ImageMagick toolkit functions
Code
function _imageapi_imagemagick_convert_exec($command_args, &$output, &$errors) {
$convert_path = variable_get('imageapi_imagemagick_convert', '/usr/bin/convert');
if ($errors = _imageapi_imagemagick_check_path($convert_path)) {
watchdog('imageapi imagemagick', implode('<br />', $errors), WATCHDOG_ERRROR);
return FALSE;
}
$drupal_path = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['SCRIPT_NAME'] ? $_SERVER['SCRIPT_NAME'] : $_SERVER['SCRIPT_FILENAME']);
if (strstr($_SERVER['SERVER_SOFTWARE'], 'Win32') || strstr($_SERVER['SERVER_SOFTWARE'], 'IIS')) {
$convert_path = 'start "window title" /D' . escapeshellarg($drupal_path) . ' /B ' . escapeshellarg($convert_path);
}
$descriptors = array(
0 => array(
'pipe',
'r',
),
1 => array(
'pipe',
'w',
),
2 => array(
'pipe',
'w',
),
);
if ($h = proc_open($convert_path . ' ' . $command_args, $descriptors, $pipes, $drupal_path)) {
$output = '';
while (!feof($pipes[1])) {
$output .= fgets($pipes[1]);
}
$errors = '';
while (!feof($pipes[2])) {
$errors .= fgets($pipes[2]);
}
if (variable_get('imageapi_imagemagick_debugging', FALSE) && user_access('administer site configuration')) {
drupal_set_message(t('ImageMagick command: @command', array(
'@command' => $convert_path . ' ' . $command_args,
)));
drupal_set_message(t('ImageMagick output: @output', array(
'@output' => $output,
)));
}
if ($errors) {
drupal_set_message(t('ImageMagick reported an error: %error', array(
'%error' => $errors,
)), 'error');
}
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
return proc_close($h);
}
return FALSE;
}