Вход Регистрация
* [Mc]Laren

Создание уменьшенной копии изображения

  1. /**
  2.  * @param string $sSrcname Файл исходного изображения
  3.  * @param string $sDstName Файл уменьшенной копии
  4.  * @param int $iDstW Максимальная ширина копии
  5.  * @param int $iDstH Максимальная высота копии
  6.  */
  7. function CreateThumbnail($sSrcName, $sDstName, $iDstW, $iDstH)
  8. {
  9. // Получим информацию о исходном изображении
  10. $aImgInfo = getImageSize($sSrcName);
  11.  
  12. // Определим тип
  13. switch ($aImgInfo[2])
  14. {
  15. case IMAGETYPE_JPEG:
  16. $sType = 'jpeg';
  17. break;
  18.  
  19. case IMAGETYPE_PNG:
  20. $sType = 'png';
  21. break;
  22.  
  23. case IMAGETYPE_GIF:
  24. $sType = 'gif';
  25. break;
  26.  
  27. default:
  28. // Если тип нам не нравится, шлем нафиг
  29. return false;
  30. break;
  31. }
  32.  
  33. if (!function_exists('imagecreatefrom' . $sType))
  34. {
  35. return false;
  36. }
  37.  
  38. // Исходное изображение
  39. $imgSrc = call_user_func('imagecreatefrom' . $sType, $sSrcName);
  40.  
  41. // Теперь $iSrcW и $iSrcH ширина и высота исходника
  42. list($iSrcW, $iSrcH) = $aImgInfo;
  43.  
  44. // Далее алгоритм определения пропорции
  45. if (($iSrcW > $iDstW) || ($iSrcH > $iDstH))
  46. {
  47. if ($iSrcW > $iSrcH)
  48. {
  49. $fK = $iDstW / $iSrcW;
  50. }
  51. else
  52. {
  53. $fK = $iDstH / $iSrcH;
  54. }
  55. }
  56. else
  57. {
  58. $fK = 1;
  59. }
  60.  
  61. $iNewW = round($iSrcW * $fK); // Ширина копии
  62. $iNewH = round($iSrcH * $fK); // Высота копии
  63.  
  64. // Создаем уменьшенную копию
  65. $imgDst = imagecreatetruecolor($iNewW, $iNewH);
  66. ImageCopyResampled($imgDst, $imgSrc, 0, 0, 0, 0, $iNewW, $iNewH, $iSrcW,
  67. $iSrcH); // Изменяем размер пропорционально со сглаживанием
  68.  
  69. // Сохраняем в $sDstName
  70. call_user_func_array('image' . $sType, array($imgDst, $sDstName));
  71.  
  72. return true;
  73. }
» Описание: Создание уменьшенной копии изображения
» Время добавления: 28 Янв 2015 в 12:50
» Посмотров: 876
» textarea
» Рейтинг: [+1 | -0]
Комментарии [0]
Онлайн: 10
Реклама