function imagemagick_imagemagick_pre_parse_file_alter in ImageMagick 8
Implements hook_imagemagick_pre_parse_file_alter().
File
- ./
imagemagick.module, line 13 - Provides ImageMagick integration.
Code
function imagemagick_imagemagick_pre_parse_file_alter(ImagemagickToolkit $toolkit) {
// Convert source image URI to filepath.
$local_path = $toolkit
->getSourceLocalPath();
if (empty($local_path)) {
$source = $toolkit
->getSource();
if (!file_valid_uri($source)) {
// The value of $source is likely a file path already.
$toolkit
->setSourceLocalPath($source);
}
else {
// If we can resolve the realpath of the file, then the file is local and
// we can assign the actual file path.
$file_system = \Drupal::service('file_system');
$path = $file_system
->realpath($source);
if ($path) {
$toolkit
->setSourceLocalPath($path);
}
else {
// We are working with a remote file, copy the remote source file to a
// temp one and set the local path to it.
$temp_path = $file_system
->tempnam('temporary://', 'imagemagick_');
$file_system
->unlink($temp_path);
$temp_path .= '.' . pathinfo($source, PATHINFO_EXTENSION);
$path = file_unmanaged_copy($toolkit
->getSource(), $temp_path, FILE_EXISTS_ERROR);
$toolkit
->setSourceLocalPath($file_system
->realpath($path));
}
}
}
}