hei!! palvelin ongelman vuoksi mun pitäis saaeda seuraavanlainen koodi vaihdettuu käyttään imagemagic:a... ite en onnistu....
<?php /** * FotoJobs - changing photos * @access public * @version 0.0.8-bf2 * @require FileJobs * @require Trash * @date 2006-06-02 11:10:05 */ class FotoJobs extends FileJobs { var $iThumbX = 100; var $iThumbY = 100; var $iQuality = 80; var $iThumbAdd = '_m'; var $sExt = 'jpg'; var $iMaxForThumbSize = 2000; var $fRatio = 0.65; /** * Constuctor * @return void * @param int $iThumbSize */ function FotoJobs( $iThumbSize = 100 ){ $this->iThumbX = $iThumbSize; } // end function FotoJobs /** * Sets thumb size * @return void * @param int $iThumbSize */ function setThumbSize( $iThumbSize = 100 ){ $this->iThumbX = $iThumbSize; } // end function setThumbSize /** * Sets thumb quality * @return void * @param int $iThumbQuality */ function setThumbQuality( $iThumbQuality = 80 ){ $this->iQuality = $iThumbQuality; } // end function setThumbQuality /** * Ustawia przytostek nazwy dla miniaturki zdjecia * @return void * @param int $iThumbAdd */ function setThumbAdd( $iThumbAdd = '_m' ){ $this->iThumbAdd = $iThumbAdd; } // end function setThumbAdd /** * Ustawia max rozmiar zdjecia dla ktorego tworza sie miniaturki * @return void * @param int $iMaxForThumbSize */ function setMaxForThumbSize( $iMaxForThumbSize = 2000 ){ $this->iMaxForThumbSize = $iMaxForThumbSize; } // end function setMaxForThumbSize /** * Ustawia proporcje obrazka * @return void * @param int $fRatio */ function setRatio( $fRatio = 0.65 ){ $this->fRatio = $fRatio; } // end function setRatio /** * Obsluguje upload lub kopiowanie plikow i tworzenie z nich miniaturek * @return array * @param string $sDestDir - katalog docelowy * @param mixed $mImgSrc - odpowiada array $_FILES jesli upload lub sciezce do pliku jesli copy * @param string $sImgOutput - proponowana nazwa pliku wyjsciowego * @param mixed $sOption - upload lub copy */ function copyAndCreateThumb( $sDestDir, $mImgSrc, $sImgOutput, $sOption = null ){ // zapamietanie wielkosci dla miniaturek $iOldSize = $this->iThumbX; if( !is_dir( $sDestDir ) ) return null; $sImgOutput = $this->throwNameOfFile( $sImgOutput ); $sImgOutput = $this->changeFileName( $sImgOutput ); if( $sOption == 'upload' ){ if( is_uploaded_file( $mImgSrc['tmp_name'] ) && is_file( $mImgSrc['tmp_name'] ) && filesize( $mImgSrc['tmp_name'] ) > 0 && $this->checkCorrectFile( $mImgSrc['name'], 'jpg|jpeg|gif|png' ) == 1 ){ $this->sExt = $this->throwExtOfFile( $mImgSrc['name'] ); $aNewFiles['bFile'] = $this->uploadFile( $mImgSrc, $sDestDir, $sImgOutput.'.'.$this->sExt ); } else return null; } elseif( $sOption == 'copy' ){ if( is_file( $mImgSrc ) && filesize( $mImgSrc ) > 0 && $this->checkCorrectFile( $mImgSrc, 'jpg|jpeg|gif|png' ) == 1 ){ $this->sExt = $this->throwExtOfFile( $mImgSrc ); $aNewFiles['bFile'] = $this->checkIsFile( $sImgOutput.'.'.$this->sExt, $sDestDir, $this->sExt ); if( !copy( $mImgSrc, $sDestDir.$aNewFiles['bFile'] ) ) return null; } else return null; } $sImgPatch = $sDestDir.$aNewFiles['bFile']; $aNewFiles['bName'] = basename( $aNewFiles['bFile'], '.'.$this->sExt ); $aNewFiles['sFile'] = $aNewFiles['bName'] . $this->iThumbAdd . '.' . $this->sExt; $aImgSize = $this->throwImgSize( $sImgPatch ); if( defined( 'MAX_DIMENSION_OF_IMAGE' ) && ( $aImgSize['width'] > MAX_DIMENSION_OF_IMAGE || $aImgSize ['height'] > MAX_DIMENSION_OF_IMAGE ) ){ if( $aImgSize['width'] < $this->iMaxForThumbSize && $aImgSize ['height'] < $this->iMaxForThumbSize ){ $iOldAdd = $this->iThumbAdd; $this->setThumbSize( MAX_DIMENSION_OF_IMAGE ); $this->setThumbAdd( '' ); $aNewFiles['bFile'] = $this->createThumb( $sImgPatch, $sDestDir, $aNewFiles['bFile'] ); $this->setThumbSize( $iOldSize ); $this->setThumbAdd( $iOldAdd ); } else return null; } if( $aImgSize['width'] >= $this->iThumbX || $aImgSize['height'] >= $this->iThumbX ){ if( $aImgSize['width'] < $this->iMaxForThumbSize && $aImgSize ['height'] < $this->iMaxForThumbSize ) $aNewFiles['sFile'] = $this->createThumb( $sImgPatch, $sDestDir ); else return null; } 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 /** * Czysci wszystkie zmienne klasy * @return void */ function clearAll( ){ $this->iThumbX = 100; $this->iThumbY = 100; } // end function clearAll /** * Zwraca wielkosc obrazka w px * @return array/int * @param string $imgSrc * @param mixed $sOption */ function throwImgSize( $imgSrc, $sOption = null ){ $aImg = getImageSize( $imgSrc ); $aImgSize['width'] = $aImg[0]; $aImgSize['height'] = $aImg[1]; if( $sOption == 'width' || $sOption == 'height' ) return $aImgSize[$sOption]; else return $aImgSize; } // end function throwImgSize /** * Zwraca wielkosc szerokosc obrazka w px * @return int * @param string $imgSrc */ function throwImgWidth( $imgSrc ){ return $this->throwImgSize( $imgSrc, 'width' ); } // end function throwImgWidth /** * Zwraca wysokosc obrazka w px * @return int * @param string $imgSrc */ function throwImgHeight( $imgSrc ){ return $this->throwImgSize( $imgSrc, 'height' ); } // end function throwImgHeight /** * Funckcja tworzaca miniaturki zdjec * @return int * @param string $sImgSource - plik zrodlowy z ktorego tworzona jest miniaturka * @param string $sImgDestDir - katalog docelowy dla miniaturki * @param string $sImgOutput - nazwa zdjecia po zmniejszeniu (domyslnie stara nazwa plus _m) * @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; if( !is_numeric( $iQuality ) ) $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 ); $aImgProperties = GetImageSize( $sImgBackup ); if ( !$aImgProperties[2] == 2 ) { return null; } else { switch( $sImgExt ) { case 'jpg': $mImgCreate = ImageCreateFromJPEG( $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 ); unlink( $sImgBackup ); 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 = ImageJPEG( $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 }; ?>
Käyt kaikki funktiot yksitellen läpi ja etsit Imagemagickin dokumentaatiosta vastaavan komennon ja sit vaan shell_exec:iä tai muuta vastaavaa funktiota käyttöön.
Aihe on jo aika vanha, joten et voi enää vastata siihen.