Advertisement
Guest User

Adelf

a guest
Dec 8th, 2010
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.07 KB | None | 0 0
  1. function lib_imageTumbnail($srcFileName, $destFileName,
  2.         $thumbWidth/*120 for example*/, $thumbHeight/*80 for example*/, $quality = 70)
  3.      {
  4.          // получаем картинковый обьект
  5.         $srcImage = imagecreatefromjpeg($srcFileName);
  6.        
  7.         if(!$srcImage) return false;
  8.    
  9.         $srcWidth = imagesx($srcImage);
  10.         $srcHeight = imagesy($srcImage);
  11.        
  12.         $srcRatio = $srcWidth / $srcHeight; // коеф фотки
  13.        
  14.         $destRatio = $thumbWidth / $thumbHeight; // коеф стандартный
  15.        
  16.         if($srcRatio > $destRatio)
  17.         {
  18.           // фотка больше, чем надо, в ширину. Вычисляем отступ по горизонтали.
  19.           $croppedWidth = round($srcHeight * $destRatio);
  20.           $croppedHeight = $srcHeight;
  21.           $cropLeft   = round( ($srcWidth - $croppedWidth) / 2);
  22.           $cropTop    = 0;        
  23.         }
  24.         else
  25.         {
  26.           // фотка больше, чем надо, в высоту. Вычисляем отступ по вертикали.
  27.           $croppedHeight = round($srcWidth / $destRatio);
  28.           $croppedWidth = $srcWidth;
  29.           $cropTop = round( ($srcHeight - $croppedHeight) / 2);
  30.           $cropLeft = 0;
  31.         }
  32.        
  33.         $destImage = imagecreatetruecolor($thumbWidth, $thumbHeight);
  34.              
  35.         imagecopyresampled($destImage, $srcImage, 0, 0, $cropLeft, $cropTop,  
  36.             $thumbWidth, $thumbHeight,  $croppedWidth, $croppedHeight);
  37.        
  38.         imagejpeg($destImage, $destFileName, $quality);
  39.          
  40.         imagedestroy($srcImage);
  41.         imagedestroy($destImage);
  42.        
  43.         return true;
  44.      }
  45.  
  46. lib_imageTumbnail("c:\\test\\interface.jpg", "c:\\test\\int_100_100.jpg", 100, 100);
  47. lib_imageTumbnail("c:\\test\\interface.jpg", "c:\\test\\int_120_100.jpg", 120, 100);
  48. lib_imageTumbnail("c:\\test\\interface.jpg", "c:\\test\\int_120_110.jpg", 120, 110);
  49. lib_imageTumbnail("c:\\test\\interface.jpg", "c:\\test\\int_80_120.jpg", 80, 120);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement