final protected function load($file)
    {
        $info = $this->getImageInfo($file);

        if ($info !== false) {
            $this->image = $this->createImageFromFile($file, $info['type']);

            $this->width = $info['width'];
            $this->height = $info['height'];
            $this->type = $info['type'];
            $this->mime = $info['mime'];

            // Calculate required memory space in bytes
            $this->requiredMemorySpace = $info['width'] * $info['height'] * $info['bits'];
            return true;
        } else {
            return false;
        }
    }