Вход Регистрация
Файл: my.net.ru/system/functions/crop_image.php
Строк: 56
<?php

/*
----------------------------------------
Функция уменьшения и обрезки изображений
----------------------------------------
*/
  
function crop_image($aInitialImageFilePath$aNewImageFilePath$aNewImageWidth$aNewImageHeight) {
  
  if (
$aNewImageWidth || $aNewImageHeight 0) {
    
    return 
false;
  
  }
  
  
//Массив с поддерживаемыми типами изображений
  
$lAllowedExtensions = array(=> "gif"=> "jpeg"=> "png"); 
  
  
//Получаем размеры и тип изображения в виде числа
  
list($lInitialImageWidth$lInitialImageHeight$lImageExtensionId) = getimagesize($aInitialImageFilePath); 
  
  if (!
array_key_exists($lImageExtensionId$lAllowedExtensions)) {
    
    return 
false;
  
  }
  
  
$lImageExtension $lAllowedExtensions[$lImageExtensionId];
  
  
//Получаем название функции, соответствующую типу, для создания изображения
  
$func 'imagecreatefrom'.$lImageExtension
  
  
//Создаём дескриптор исходного изображения
  
$lInitialImageDescriptor $func($aInitialImageFilePath);
  
  
//Определяем отображаемую область
  
$lCroppedImageWidth 0;
  
$lCroppedImageHeight 0;
  
$lInitialImageCroppingX 0;
  
$lInitialImageCroppingY 0;
  
  if (
$aNewImageWidth $aNewImageHeight $lInitialImageWidth $lInitialImageHeight) {
    
    
$lCroppedImageWidth floor($lInitialImageWidth);
    
$lCroppedImageHeight floor($lInitialImageWidth $aNewImageHeight $aNewImageWidth);
    
$lInitialImageCroppingY floor(($lInitialImageHeight $lCroppedImageHeight) / 2);
  
  }else{
    
    
$lCroppedImageWidth floor($lInitialImageHeight $aNewImageWidth $aNewImageHeight);
    
$lCroppedImageHeight floor($lInitialImageHeight);
    
$lInitialImageCroppingX floor(($lInitialImageWidth $lCroppedImageWidth) / 2);
  
  }
  
  
//Создаём дескриптор для выходного изображения
  
  
$lNewImageDescriptor imagecreatetruecolor($aNewImageWidth$aNewImageHeight);
  
imagecopyresampled($lNewImageDescriptor$lInitialImageDescriptor00$lInitialImageCroppingX$lInitialImageCroppingY,
$aNewImageWidth$aNewImageHeight$lCroppedImageWidth$lCroppedImageHeight);
  
$func 'image' $lImageExtension;
  
  
//сохраняем полученное изображение в указанную директорию
  
return $func($lNewImageDescriptor$aNewImageFilePath);
  
}
Онлайн: 0
Реклама