Advertisement
Guest User

Image converter

a guest
Dec 8th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.95 KB | None | 0 0
  1. private function convert(ImageObject $imageToWork, array $conversion): ImageObject
  2.     {
  3.         if (isset($conversion[self::WIDTH_FITTING_KEY]) && isset($conversion[self::HEIGHT_FITTING_KEY])) {
  4.             $imageToWork = $imageToWork->fit($conversion[self::WIDTH_FITTING_KEY],
  5.                 $conversion[self::HEIGHT_FITTING_KEY]);
  6.             unset($conversion[self::WIDTH_FITTING_KEY]);
  7.             unset($conversion[self::HEIGHT_FITTING_KEY]);
  8.         } elseif (isset($conversion[self::WIDTH_FITTING_KEY]) && !isset($conversion[self::HEIGHT_FITTING_KEY])) {
  9.             $imageToWork = $imageToWork->fit($conversion[self::WIDTH_FITTING_KEY], null, function ($constraint) {
  10.                 /**
  11.                  * @var Constraint $constraint
  12.                  */
  13.                 $constraint->aspectRatio();
  14.             });
  15.             unset($conversion[self::WIDTH_FITTING_KEY]);
  16.         } elseif (!isset($conversion[self::WIDTH_FITTING_KEY]) && isset($conversion[self::HEIGHT_FITTING_KEY])) {
  17.             $imageToWork = $imageToWork->fit(null, $conversion[self::HEIGHT_FITTING_KEY], function ($constraint) {
  18.                 /**
  19.                  * @var Constraint $constraint
  20.                  */
  21.                 $constraint->aspectRatio();
  22.             });
  23.             unset($conversion[self::HEIGHT_FITTING_KEY]);
  24.         }
  25.  
  26.         if (!empty($conversion)) {
  27.             foreach ($conversion as $key => $value) {
  28.                 if (method_exists($imageToWork, $key)) {
  29.                     $reflection = new \ReflectionMethod($imageToWork, $key);
  30.                     $params = $reflection->getParameters();
  31.  
  32.                     if (count($params) == 0) {
  33.                         $imageToWork = $imageToWork->{$key}();
  34.                     } elseif (count($params) == 1) {
  35.                         if (is_array($value)) {
  36.                             $imageToWork = $imageToWork->{$key}(reset($value));
  37.                         }
  38.                     } else {
  39.                         if (is_array($value)) {
  40.                             $passedValues = [];
  41.                             $count = 0;
  42.                             foreach ($params as $param) {
  43.                                 if (isset($value[$param->getName()])) {
  44.                                     $passedValues[] = $value[$param->getName()];
  45.                                 } else {
  46.                                     if (isset($value[$count])) {
  47.                                         $passedValues[] = $value[$count];
  48.                                         $count++;
  49.                                     }
  50.                                 }
  51.                             }
  52.  
  53.                             if(!empty($passedValues)) {
  54.                                 $imageToWork = call_user_func_array([$imageToWork, $key], $passedValues);
  55.                             }
  56.                         }
  57.                     }
  58.                 }
  59.             }
  60.         }
  61.  
  62.         return $imageToWork;
  63.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement