         let previousTask = self.task
         defer { previousTask?.cancel() }
 
+        let request = request.asImageRequest()
         self.request = request
 
         // Try to display the regular image if it is available in memory cache

        isLoading = false
        image = nil
        result = nil
        progress = Progress(completed: 0, total: 0)
        request = nil
    }


    public init() {}

    // MARK: Load (ImageRequestConvertible)

    /// Starts loading the image if not already loaded and the download is not
    /// already in progress.
    public func load(_ request: ImageRequestConvertible) {
        _reset()

        // Cancel previous task after starting a new one to make sure that if
