| 
<?php
/* PIMG module: resizes an image keeping it's aspect ratio and fits it in an user defined rectangle */
 class pimg_fitin
 {
 /* Resources */
 private $pimg;
 
 // PIMG constructor
 function __construct($pimg)
 {
 $this -> pimg = $pimg;
 }
 
 
 
 /*
 Resizes an image keeping it's aspect ratio and fits it in an user defined rectangle
 @param: $width - rectangle width
 @param: $height - rectangle height
 @result: a pointer to the caller pimg class for furthur usage
 */
 function init($width, $height)
 {
 /* INPUT VALIDATORS */
 if ($width <= 0)
 $this -> pimg -> setDebug('Fitin destination width must be > 0', 'error', __CLASS__);
 if ($height <= 0)
 $this -> pimg -> setDebug('Fitin destination height must be > 0', 'error', __CLASS__);
 
 // Callculate new width and height
 $newWidth = $width;
 $newHeight = $this -> pimg -> height() * $newWidth / $this -> pimg -> width();
 
 if ($newHeight > $height)
 {
 $newHeight = $height;
 $newWidth = $this -> pimg -> width() * $newHeight / $this -> pimg -> height();
 }
 
 // Resize
 return $this -> pimg -> stretch($newWidth, $newHeight);
 }
 }
 ?>
 |