<?php
else
copy( $sImgPatch, $sDestDir.$aNewFiles['sFile'] );
$aNewFiles['bWidth'] = $aImgSize['width'];
$aNewFiles['bHeight'] = $aImgSize['height'];
$aNewFiles['sWidth'] = $this->iThumbX;
$aNewFiles['sHeight'] = $this->iThumbY;
$aNewFiles['sName'] = basename( $aNewFiles['sFile'], '.'.$this->sExt ); $aNewFiles['ext'] = $this->sExt;
$this->iThumbY = 100;
$this->setThumbSize( $iOldSize );
return $aNewFiles;
} // end function copyAndCreateThumb
/**
* Clears propeties of object (set to default)
* @return void
*/
function clearAll( ){
$this->iThumbX = 100;
$this->iThumbY = 100;
} // end function clearAll
/**
* Returns image size in px
* @return array/int
* @param string $imgSrc
* @param mixed $sOption
*/
function throwImgSize( $imgSrc, $sOption = null ){
$aImgSize['width'] = $aImg[0];
$aImgSize['height'] = $aImg[1];
if( $sOption == 'width' || $sOption == 'height' )
return $aImgSize[$sOption];
else
return $aImgSize;
} // end function throwImgSize
/**
* Returns image width in px
* @return int
* @param string $imgSrc
*/
function throwImgWidth( $imgSrc ){
return $this->throwImgSize( $imgSrc, 'width' );
} // end function throwImgWidth
/**
* Returns image height in px
* @return int
* @param string $imgSrc
*/
function throwImgHeight( $imgSrc ){
return $this->throwImgSize( $imgSrc, 'height' );
} // end function throwImgHeight
/**
* Creates new custom size thumb
* @return string
* @param string $sImgSource
* @param string $sImgDestDir
* @param int $iSize
* @param string $sImgOutput
* @param bool $bOverwrite
*/
function createCustomThumb( $sImgSource, $sImgDestDir, $iSize = null, $sImgOutput = false, $bOverwrite = null ){
if( !is_dir( $sImgDestDir ) || $this->checkCorrectFile( $sImgSource, 'jpg|jpeg|gif|png' ) == 0
) return null;
$aImgSize = $this->throwImgSize( $sImgSource );
if( $aImgSize['width'] < $this->iMaxForThumbSize && $aImgSize ['height'] < $this->iMaxForThumbSize ){
$sImgExt = $this->throwExtOfFile( $sImgSource );
if( $sImgOutput == false )
$sImgOutput = $this->throwNameOfFile( $sImgSource ) . $this->sCustomThumbAdd . '.' . $sImgExt;
if( !isset( $bOverwrite ) ) $sImgOutput = $this->checkIsFile( $sImgOutput, $sImgDestDir );
$iOldSize = $this->iThumbX;
$this->setThumbSize( $iSize );
else
$this->setThumbSize( $this->iCustomThumbX );
$sFile = $this->createThumb( $sImgSource, $sImgDestDir, $sImgOutput );
$this->setThumbSize( $iOldSize );
return $sFile;
}
else
return null;
} // end function createCustomThumb
/**
* Function make photo thumbs
* @return int
* @param string $sImgSource - source file, from it thumb is created
* @param string $sImgDestDir - destination directory for thumb
* @param string $sImgOutput - picture name after change (default old name with _m addition)
* @param mixed $sOption - b/d
*/
function createThumb( $sImgSource, $sImgDestDir, $sImgOutput = false, $iQuality = null, $sOption = null ) {
if( !is_dir( $sImgDestDir ) || $this->checkCorrectFile( $sImgSource, 'jpg|jpeg|gif|png' ) == 0
) return null;
$iQuality = $this->iQuality;
$sImgExt = $this->throwExtOfFile( $sImgSource );
if( $sImgOutput == false )
$sImgOutput = basename( $sImgSource, '.'.$sImgExt ) . $this->iThumbAdd . '.' . $sImgExt;
$sImgOutput = $this->changeFileName( $sImgOutput );
$sImgBackup = $sImgDestDir.$sImgOutput . "_backup.jpg";
copy( $sImgSource, $sImgBackup );
if ( !$aImgProperties[2] == 2 ) {
return null;
}
else {
switch( $sImgExt ) {
case 'jpg':
$mImgCreate = ImageCreateFromJPG( $sImgBackup );
break;
case 'jpeg':
$mImgCreate = ImageCreateFromJPEG( $sImgBackup );
break;
case 'png':
$mImgCreate = ImageCreateFromPNG( $sImgBackup );
break;
case 'gif':
$mImgCreate = ImageCreateFromGIF( $sImgBackup );
}
$iImgCreateX = ImageSX( $mImgCreate );
$iImgCreateY = ImageSY( $mImgCreate );
$iScaleX = $this->iThumbX / ( $iImgCreateX );
$this->iThumbY = $iImgCreateY * $iScaleX;
$iRatio = $this->iThumbX / $this->iThumbY;
if( $iRatio < $this->fRatio ) {
$this->iThumbY = $this->iThumbX;
$iScaleY = $this->iThumbY / ( $iImgCreateY );
$this->iThumbX = $iImgCreateX * $iScaleY;
}
$this->iThumbX = ( int )( $this->iThumbX );
$this->iThumbY = ( int )( $this->iThumbY );
$mImgDest = imagecreatetruecolor( $this->iThumbX, $this->iThumbY );
if( function_exists( 'imagecopyresampled' ) )
$sCreateFunction = 'imagecopyresampled';
else
$sCreateFunction = 'imagecopyresized';
if( !$sCreateFunction( $mImgDest, $mImgCreate, 0, 0, 0, 0, $this->iThumbX + 1, $this->iThumbY + 1, $iImgCreateX, $iImgCreateY ) ) {
imagedestroy( $mImgCreate );
imagedestroy( $mImgDest );
return null;
}
else {
imagedestroy( $mImgCreate );
if( !is_file( $sImgDestDir.$sImgOutput ) ) { touch( $sImgDestDir.$sImgOutput ); chmod( $sImgDestDir.$sImgOutput, 0666 );
}
switch( $sImgExt ) {
case 'jpg':
$Image = ImageJPG( $mImgDest, $sImgDestDir.$sImgOutput, $iQuality );
break;
case 'jpeg':
$Image = ImageJPEG( $mImgDest, $sImgDestDir.$sImgOutput, $iQuality );
break;
case 'png':
$Image = ImagePNG( $mImgDest, $sImgDestDir.$sImgOutput );
break;
case 'gif':
if( function_exists( "imagegif" ) )
$Image = ImageGIF( $mImgDest, $sImgDestDir.$sImgOutput );
else{
if( $iQuality > 0 )
$iQuality = floor( ( $iQuality - 1
) / 10
); $Image = ImagePNG( $mImgDest, $sImgDestDir.$sImgOutput, $iQuality );
}
}
if ( $Image ) {
imagedestroy( $mImgDest );
return $sImgOutput;
}
imagedestroy( $mImgDest );
}
return null;
}
} // end function createThumb
};
?>