babalae/better-genshin-impact · error · NotSupportedException

不支持的图片协议:{source.Scheme}

Error message

不支持的图片协议:{source.Scheme}

What it means

Error "不支持的图片协议:{source.Scheme}" thrown in babalae/better-genshin-impact.

Source

Thrown at BetterGenshinImpact/View/Controls/Markdown/MarkdownImageLoader.cs:118

                               ?? throw new FileNotFoundException("找不到 Markdown pack 资源。", source.ToString());
            await using var resourceStream = resourceInfo.Stream;
            bytes = await ReadLimitedAsync(resourceStream, cancellationToken);
        }
        else if (source.Scheme is "http" or "https")
        {
            using var response = await HttpClient.GetAsync(source, HttpCompletionOption.ResponseHeadersRead, cancellationToken);
            response.EnsureSuccessStatusCode();
            if (response.Content.Headers.ContentLength > MaxDownloadBytes)
            {
                throw new InvalidDataException($"图片大小超过 {MaxDownloadBytes / 1024 / 1024} MB 限制。");
            }

            await using var responseStream = await response.Content.ReadAsStreamAsync(cancellationToken);
            bytes = await ReadLimitedAsync(responseStream, cancellationToken);
        }
        else
        {
            throw new NotSupportedException($"不支持的图片协议:{source.Scheme}");
        }

        cancellationToken.ThrowIfCancellationRequested();
        var result = DecodeImage(bytes);
        _cache[cacheKey] = new WeakReference<MarkdownImageResult>(result);
        return result;
    }

    private static HttpClient CreateHttpClient()
    {
        var client = new HttpClient(new HttpClientHandler
        {
            AllowAutoRedirect = true,
            MaxAutomaticRedirections = 5,
            UseCookies = false,
            UseDefaultCredentials = false
        })
        {

View on GitHub (pinned to a7cb36712d)

Solutions

  1. 仅使用支持的图片协议(http/https/data/pack)
  2. 将图片下载到本地后使用支持的引用方式
  3. 修改 Markdown 中的图片链接协议

Example fix

改用 http/https 链接、本地文件路径或 data URI。

When it happens

Trigger: 图片 Uri 的 Scheme 既不是 data、file、pack,也不是 http/https,落入 else 分支抛出 NotSupportedException。

Common situations: Markdown 中使用了 ftp、自定义协议等不支持的图片链接。


AI-assisted analysis of babalae/better-genshin-impact@a7cb36712d (2026-08-13). Data as JSON: /api/errors/18749e897f75af7b. Report an issue: GitHub.