function epsacrop_crop_image in EPSA Crop - Image Cropping 7.2
Same name and namespace in other branches
- 8.2 epsacrop.module \epsacrop_crop_image()
Apply the effect to the image.
@access public
Parameters
stdClass $image:
array $settings:
Return value
void
1 string reference to 'epsacrop_crop_image'
- epsacrop_image_effect_info in ./
epsacrop.module - Implements hook_image_effect_info.
File
- ./
epsacrop.module, line 405 - The main file of module
Code
function epsacrop_crop_image(stdClass $image, $settings) {
$fid = _epsacrop_get_fid_from_uri($image->source);
if (!empty($fid) && $fid > 0) {
$coords = _epsacrop_get_coords_from_fid($fid);
if (is_string($coords)) {
$coords = drupal_json_decode($coords);
if (is_object($coords)) {
$coords = (array) $coords;
}
}
if (!empty($coords) && is_array($coords)) {
if (isset($GLOBALS['jcrop_style'])) {
$style_name = $GLOBALS['jcrop_style'];
}
else {
$style_name = _epsacrop_get_style_name_from_url();
}
if (!empty($style_name)) {
// Trigger presave hook.
module_invoke_all('epsacrop_crop_image_presave', $image, $settings, $coords, $style_name);
$style = _epsacrop_load_style($style_name);
if (!empty($style)) {
$effect = _epsacrop_get_effect($style);
if (!empty($effect)) {
$effect = current($effect);
$preset = 'epsacrop-' . $style_name;
$coord = isset($coords[$fid][$preset]) ? $coords[$fid][$preset] : '';
if (!empty($coord)) {
if (image_crop($image, $coord['x'], $coord['y'], $coord['w'], $coord['h'])) {
// Trigger postsave hook.
module_invoke_all('epsacrop_crop_image_postsave', $image, $settings, $coords, $style_name);
if (isset($settings['disable_scale']) && $settings['disable_scale']) {
return TRUE;
}
return image_scale($image, $settings['width'], $settings['height']);
}
}
}
}
}
}
}
return empty($settings['jcrop_settings']['fallback']) ? image_crop_effect($image, $settings) : TRUE;
}