You are here

function imagecache_actions_calculate_relative_position in ImageCache Actions 6

Same name and namespace in other branches
  1. 8 utility.inc \imagecache_actions_calculate_relative_position()
  2. 6.2 utility.inc \imagecache_actions_calculate_relative_position()
  3. 7 utility.inc \imagecache_actions_calculate_relative_position()

Given two imageapi objects with dimensions, and some positioning values, calculate a new x,y for the layer to be placed at.

1 call to imagecache_actions_calculate_relative_position()
textactions_rendertext_image in ./textrender.inc
Place the text defined in the action onto the current background

File

./utility.inc, line 253
Utility form, conversion and rendering functions for image processes

Code

function imagecache_actions_calculate_relative_position($base, $layer, $style) {

  // $textimage should now have its size info available.
  // Calc the position
  if (isset($style['top'])) {
    $ypos = $style['top'];
  }
  if (isset($style['bottom'])) {
    $ypos = $base->info['height'] - ($layer->info['height'] + $style['bottom']);
  }
  if (!isset($ypos)) {

    // assume center
    $ypos = $base->info['height'] / 2 - $layer->info['height'] / 2;
  }
  if (isset($style['left'])) {
    $xpos = $style['left'];
  }
  if (isset($style['right'])) {
    $xpos = $base->info['width'] - ($layer->info['width'] + $style['right']);
  }
  if (!isset($xpos)) {

    // assume center
    $xpos = $base->info['width'] / 2 - $layer->info['width'] / 2;
  }
  return array(
    'x' => $xpos,
    'y' => $ypos,
  );
}