function _imageapi_imagemagick_convert_exec in ImageAPI 6
Same name and namespace in other branches
- 5 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 174
- 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', '!errors', array(
'!errors' => implode('<br />', $errors),
), WATCHDOG_ERROR);
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]);
}
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
$return_code = proc_close($h);
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 ($return_code != 0) {
if (empty($errors)) {
trigger_error(t('ImageMagick reported error code !code.', array(
'!code' => $return_code,
)), E_USER_ERROR);
}
else {
trigger_error(t("ImageMagick reported error code !code.\nMessage:\n!error", array(
'!code' => $return_code,
'!error' => $errors,
)), E_USER_ERROR);
}
}
return $return_code;
}
return FALSE;
}