Ignore:
Timestamp:
Dec 21, 2011, 2:51:44 PM (9 years ago)
Author:
rvelices
Message:

derivatives - can display several sizes on picture page

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/derivatives/include/derivative_params.inc.php

    r12770 r12775  
    3030{
    3131  public $l,$t,$r,$b;
    32  
     32
    3333  function __construct($l)
    3434  {
     
    3737    $this->b = $l[1];
    3838  }
    39  
     39
    4040  function width()
    4141  {
    4242    return $this->r - $this->l;
    4343  }
    44  
     44
    4545  function height()
    4646  {
     
    5353      return;
    5454    $tlcrop = floor($pixels/2);
    55    
     55
    5656    if (!empty($coi))
    5757    {
     
    8383    $this->r -= $pixels - $tlcrop;
    8484  }
    85  
     85
    8686  function crop_v($pixels, $coi, $force)
    8787  {
     
    8989      return;
    9090    $tlcrop = floor($pixels/2);
    91    
     91
    9292    if (!empty($coi))
    9393    {
     
    132132    $this->min_size = $min_size;
    133133  }
    134  
     134
    135135  static function classic($w, $h)
    136136  {
     
    142142    return new SizingParams( array($w,$w), 1, array($w,$w) );
    143143  }
    144  
     144
    145145  function add_url_tokens(&$tokens)
    146146  {
    147       if (!$this->could_crop())
     147      if ($this->max_crop == 0)
    148148      {
    149149        $tokens[] = 's'.size_to_url($this->ideal_size);
     
    160160      }
    161161  }
    162  
     162
    163163  static function from_url_tokens($tokens)
    164164  {
     
    175175      return new SizingParams($s, 1, $s);
    176176    }
    177    
     177
    178178    $ideal_size = url_to_size( $token );
    179179    if (count($tokens)<2)
    180180      throw new Exception('Sizing arr');
    181      
     181
    182182    $token = array_shift($tokens);
    183183    $crop = sscanf('%02x' , $token) / 100;
    184    
     184
    185185    $token = array_shift($tokens);
    186186    $min_size = url_to_size( $token );
    187187    return new SizingParams($ideal_size, $crop, $min_size);
    188188  }
    189  
    190   function could_crop()
    191   {
    192     return $this->max_crop > 0;
    193   }
     189
    194190
    195191  function compute($in_size, $coi, &$crop_rect, &$scale_size)
    196192  {
    197193    $destCrop = new ImageRect($in_size);
    198    
     194
    199195    if ($this->max_crop > 0)
    200196    {
     
    225221      }
    226222    }
    227    
     223
    228224    $scale_size = array($destCrop->width(), $destCrop->height());
    229    
     225
    230226    $ratio_w = $destCrop->width() / $this->ideal_size[0];
    231227    $ratio_h = $destCrop->height() / $this->ideal_size[1];
     
    247243      $scale_size = null;
    248244    }
    249    
     245
    250246    $crop_rect = null;
    251247    if ($destCrop->width()!=$in_size[0] || $destCrop->height()!=$in_size[1] )
     
    261257final class ImageParams
    262258{
     259  public $type = IMG_CUSTOM;
    263260  public $sizing;
    264  
     261
    265262  function __construct($sizing)
    266263  {
    267264    $this->sizing = $sizing;
    268265  }
    269  
     266
    270267  function add_url_tokens(&$tokens)
    271268  {
    272269    $this->sizing->add_url_tokens($tokens);
    273270  }
    274  
     271
    275272  static function from_url_tokens($tokens)
    276273  {
     
    279276    return $ret;
    280277  }
    281  
     278
    282279  function compute_final_size($in_size, $coi)
    283280  {
     
    285282    return $scale_size != null ? $scale_size : $in_size;
    286283  }
     284
     285  function is_identity($in_size)
     286  {
     287    if ($in_size[0] > $this->sizing->ideal_size[0] or
     288        $in_size[1] > $this->sizing->ideal_size[1] )
     289    {
     290      return false;
     291    }
     292    return true;
     293  }
    287294}
    288295?>
Note: See TracChangeset for help on using the changeset viewer.