Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private function convert(ImageObject $imageToWork, array $conversion): ImageObject
- {
- if (isset($conversion[self::WIDTH_FITTING_KEY]) && isset($conversion[self::HEIGHT_FITTING_KEY])) {
- $imageToWork = $imageToWork->fit($conversion[self::WIDTH_FITTING_KEY],
- $conversion[self::HEIGHT_FITTING_KEY]);
- unset($conversion[self::WIDTH_FITTING_KEY]);
- unset($conversion[self::HEIGHT_FITTING_KEY]);
- } elseif (isset($conversion[self::WIDTH_FITTING_KEY]) && !isset($conversion[self::HEIGHT_FITTING_KEY])) {
- $imageToWork = $imageToWork->fit($conversion[self::WIDTH_FITTING_KEY], null, function ($constraint) {
- /**
- * @var Constraint $constraint
- */
- $constraint->aspectRatio();
- });
- unset($conversion[self::WIDTH_FITTING_KEY]);
- } elseif (!isset($conversion[self::WIDTH_FITTING_KEY]) && isset($conversion[self::HEIGHT_FITTING_KEY])) {
- $imageToWork = $imageToWork->fit(null, $conversion[self::HEIGHT_FITTING_KEY], function ($constraint) {
- /**
- * @var Constraint $constraint
- */
- $constraint->aspectRatio();
- });
- unset($conversion[self::HEIGHT_FITTING_KEY]);
- }
- if (!empty($conversion)) {
- foreach ($conversion as $key => $value) {
- if (method_exists($imageToWork, $key)) {
- $reflection = new \ReflectionMethod($imageToWork, $key);
- $params = $reflection->getParameters();
- if (count($params) == 0) {
- $imageToWork = $imageToWork->{$key}();
- } elseif (count($params) == 1) {
- if (is_array($value)) {
- $imageToWork = $imageToWork->{$key}(reset($value));
- }
- } else {
- if (is_array($value)) {
- $passedValues = [];
- $count = 0;
- foreach ($params as $param) {
- if (isset($value[$param->getName()])) {
- $passedValues[] = $value[$param->getName()];
- } else {
- if (isset($value[$count])) {
- $passedValues[] = $value[$count];
- $count++;
- }
- }
- }
- if(!empty($passedValues)) {
- $imageToWork = call_user_func_array([$imageToWork, $key], $passedValues);
- }
- }
- }
- }
- }
- }
- return $imageToWork;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement