Definition:
function image_edit_apply_changes($img, $changes) {}
Parameters
- $img
- $changes
Defined filters
- image_edit_before_change
apply_filters('image_edit_before_change', $img, $changes)
Source code
function image_edit_apply_changes($img, $changes) { if ( !is_array($changes) ) return $img; // expand change operations foreach ( $changes as $key => $obj ) { if ( isset($obj->r) ) { $obj->type = 'rotate'; $obj->angle = $obj->r; unset($obj->r); } elseif ( isset($obj->f) ) { $obj->type = 'flip'; $obj->axis = $obj->f; unset($obj->f); } elseif ( isset($obj->c) ) { $obj->type = 'crop'; $obj->sel = $obj->c; unset($obj->c); } $changes[$key] = $obj; } // combine operations if ( count($changes) > 1 ) { $filtered = array($changes[0]); for ( $i = 0, $j = 1; $j < count($changes); $j++ ) { $combined = false; if ( $filtered[$i]->type == $changes[$j]->type ) { switch ( $filtered[$i]->type ) { case 'rotate': $filtered[$i]->angle += $changes[$j]->angle; $combined = true; break; case 'flip': $filtered[$i]->axis ^= $changes[$j]->axis; $combined = true; break; } } if ( !$combined ) $filtered[++$i] = $changes[$j]; } $changes = $filtered; unset($filtered); } // image resource before applying the changes $img = apply_filters('image_edit_before_change', $img, $changes); foreach ( $changes as $operation ) { switch ( $operation->type ) { case 'rotate': if ( $operation->angle != 0 ) $img = _rotate_image_resource($img, $operation->angle); break; case 'flip': if ( $operation->axis != 0 ) $img = _flip_image_resource($img, ($operation->axis & 1) != 0, ($operation->axis & 2) != 0); break; case 'crop': $sel = $operation->sel; $scale = 1 / _image_get_preview_ratio( imagesx($img), imagesy($img) ); // discard preview scaling $img = _crop_image_resource($img, $sel->x * $scale, $sel->y * $scale, $sel->w * $scale, $sel->h * $scale); break; } } return $img; }
1987
No comments yet... Be the first to leave a reply!