<?php

namespace App\Packages\v4\Capsule\Services;

use Intervention\Image\ImageManager;

/**
 * Class ImageResizeService
 * @package App\Packages\Capsule\Services
 */
class ImageResizeService
{
	const IMAGE_EXT = 'jpg';
	const IMAGE_MIME = 'image/jpeg';
	const THUMB_WIDTH = 300;
	const THUMB_HEIGHT = 300;

	/**
	 * @var ImageManager
	 */
	private $imageManager;

	/**
	 * @param ImageManager $imageManager
	 */
	public function __construct(ImageManager $imageManager)
	{
		$this->imageManager = $imageManager;
	}

	/**
	 * @param string $imageContent
	 * @param int $width
	 * @param int $height
	 *
	 * @return string
	 */
	public function resizeToOriginal($imageContent, $width, $height)
	{
		/** Resize nad save original */
		$resultWidth = intval((int)$width / 2);
		$resultHeight = intval((int)$height / 2);

		$imageFile = $this->imageManager
			->make($imageContent)
			->fit($resultWidth, $resultHeight)
			->encode(static::IMAGE_EXT);

		return $imageFile->getEncoded();
	}

	/**
	 * @param string $imageContent
	 *
	 * @return string
	 */
	public function resizeToThumb($imageContent)
	{
		$imageFile = $this->imageManager
			->make($imageContent)
			->fit(static::THUMB_WIDTH, static::THUMB_HEIGHT)
			->encode(static::IMAGE_EXT);

		return $imageFile->getEncoded();
	}
}
