Changeset 12851 for trunk/i.php

Show
Ignore:
Timestamp:
01/05/12 22:35:25 (17 months ago)
Author:
rvelices
Message:

feature 2548 multisize - sharpen + watermarks (partially implemented / no test with imagick extension)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/i.php

    r12820 r12851  
    270270 
    271271include_once(PHPWG_ROOT_PATH . 'admin/include/image.class.php'); 
     272 
     273ignore_user_abort(true); 
     274set_time_limit(0); 
     275 
    272276$image = new pwg_image($page['src_path']); 
    273277 
     
    282286 
    283287// Crop & scale 
    284 $params->sizing->compute( array($image->get_width(),$image->get_height()), $page['coi'], $crop_rect, $scale_width ); 
     288$o_size = $d_size = array($image->get_width(),$image->get_height()); 
     289$params->sizing->compute($o_size , $page['coi'], $crop_rect, $scaled_size ); 
    285290if ($crop_rect) 
    286291{ 
     
    289294} 
    290295 
    291 if ($scale_width) 
     296if ($scaled_size) 
    292297{ 
    293298  $changes++; 
    294   $image->resize( $scale_width[0], $scale_width[1] ); 
     299  $image->resize( $scaled_size[0], $scaled_size[1] ); 
     300  $d_size = $scaled_size; 
     301} 
     302 
     303if ($params->sharpen) 
     304{ 
     305  $changes += $image->sharpen( $params->sharpen ); 
     306} 
     307 
     308if ($params->use_watermark) 
     309{ 
     310  $wm = ImageStdParams::get_watermark(); 
     311  $wm_image = new pwg_image(PHPWG_ROOT_PATH.$wm->file); 
     312  $wm_size = array($wm_image->get_width(),$wm_image->get_height()); 
     313  if ($d_size[0]<$wm_size[0] or $d_size[1]<$wm_size[1]) 
     314  { 
     315    $wm_scaling_params = SizingParams::classic($d_size[0], $d_size[1]); 
     316    $wm_scaling_params->compute($wm_size, null, $tmp, $wm_scaled_size); 
     317    $wm_size = $wm_scaled_size; 
     318    $wm_image->resize( $wm_scaled_size[0], $wm_scaled_size[1] ); 
     319  } 
     320  $x = round( ($wm->xpos/100)*($d_size[0]-$wm_size[0]) ); 
     321  $y = round( ($wm->ypos/100)*($d_size[1]-$wm_size[1]) ); 
     322  if ($image->compose($wm_image, $x, $y, $wm->opacity)) 
     323  { 
     324    $changes++; 
     325    if ($wm->xrepeat) 
     326    { 
     327      // todo 
     328    } 
     329  } 
     330  $wm_image->destroy(); 
    295331} 
    296332 
     
    302338} 
    303339 
     340$image->set_compression_quality( $params->quality ); 
    304341$image->write( $page['derivative_path'] ); 
    305342$image->destroy();