Handle image request
        :param filter_name: filter_name
        :param path: image_path
        :return:

def handle_request(self, filter_name, path):
        """
        Handle image request
        :param filter_name: filter_name
        :param path: image_path
        :return:
        """
        if filter_name in self._filter_sets:
            if self._filter_sets[filter_name]['cached']:
                cached_item_path = self._adapter.check_cached_item('%s/%s' % (filter_name, path))
                if cached_item_path:
                    return redirect(cached_item_path, self._redirect_code)

            resource = self._adapter.get_item(path)

            if resource:
                for filter_item in self._filter_sets[filter_name]['filters']:
                    resource = filter_item.apply(resource)

                if self._filter_sets[filter_name]['cached']:
                    return redirect(
                        self._adapter.create_cached_item('%s/%s' % (filter_name, path), resource),
                        self._redirect_code
                    )
                else:
                    output = BytesIO()
                    resource.save(output, format=str(resource.format))
                    return output.getvalue()
            else:
                LOGGER.warning('File "%s" not found.' % path)
                abort(404)
        else:
            LOGGER.warning('Filter "%s" not found.' % filter_name)
            abort(404)