babalae/better-genshin-impact · error · InvalidDataException

无效的图片 data URI。

Error message

无效的图片 data URI。

What it means

Error "无效的图片 data URI。" thrown in babalae/better-genshin-impact.

Source

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

        while ((read = await stream.ReadAsync(buffer, cancellationToken)) > 0)
        {
            if (output.Length + read > MaxDownloadBytes)
            {
                throw new InvalidDataException($"图片大小超过 {MaxDownloadBytes / 1024 / 1024} MB 限制。");
            }

            await output.WriteAsync(buffer.AsMemory(0, read), cancellationToken);
        }

        return output.ToArray();
    }

    private static byte[] DecodeDataUri(string dataUri)
    {
        var commaIndex = dataUri.IndexOf(',');
        if (commaIndex < 0)
        {
            throw new InvalidDataException("无效的图片 data URI。");
        }

        var metadata = dataUri[..commaIndex];
        var data = dataUri[(commaIndex + 1)..];
        var bytes = metadata.EndsWith(";base64", StringComparison.OrdinalIgnoreCase)
            ? Convert.FromBase64String(data)
            : System.Text.Encoding.UTF8.GetBytes(Uri.UnescapeDataString(data));

        if (bytes.Length > MaxDownloadBytes)
        {
            throw new InvalidDataException($"图片大小超过 {MaxDownloadBytes / 1024 / 1024} MB 限制。");
        }

        return bytes;
    }

    private static MarkdownImageResult DecodeImage(byte[] bytes)
    {

View on GitHub (pinned to a7cb36712d)

Solutions

  1. 检查 data URI 格式是否正确(data:image/xxx;base64,...)
  2. 确认 base64 内容完整未截断
  3. 改用文件路径或网络链接引用图片

Example fix

重新生成完整合法的 data URI,格式为 data:image/png;base64,<数据>。

When it happens

Trigger: data URI 中找不到逗号分隔符(元数据与数据无法分开),或 base64 解码失败时抛出。

Common situations: Markdown 中的 data:image 字符串被截断或格式损坏。


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