Base64:无效长度必须是四的倍数:颤振错误

2023-12-25

我获得了图像 Base64 编码的图像数据,但我获得的其中一张图像未上传,并给出了以下形式的错误

无效长度必须是四的倍数。

另外,我的其他图像出现一会儿然后消失一会儿。他们来了又走。这个问题有解决办法吗?

     Widget image(String thumbnail) {
        final _byteImage = Base64Decoder().convert(thumbnail);
        Widget image = Image.memory(_byteImage);
        return image;
      }

 child: Column(
                    children: [
                      image(item.thumbnail),
                      Text(
                        item.name,
                        style: TextStyle(fontSize: 14, fontWeight: FontWeight.normal,fontFamily: 'Poppins'),
                        maxLines: 2,
                      ),
                    ],
                  ),

您需要用一两个“=”填充 Base64 字符串,以达到 4 倍数的长度。

如果能不休息地除以4就可以了。如果长度模 4 的余数为 3,则在字符串中添加 1 个“=”;如果余数为“2”,则在字符串中添加 2 个“=”。

在 dart 中,你可以得到字符串的长度"".length然后用模运算符计算除以 4 的余数%:

由于实际问题是空字符串,因此以下代码也检查 null 或空字符串 https://stackoverflow.com/questions/42446566/dart-null-false-empty-checking-how-to-write-this-shorter并显示占位符图像而不是错误消息。

Widget image(String thumbnail) {
        String placeholder = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
        if (thumbnail?.isEmpty ?? true)
            thumbnail = placeholder;
        else {
            if (thumbnail.length % 4 > 0) { 
                thumbnail += '=' * (4 - thumbnail .length % 4) // as suggested by Albert221
            }
        }
        final _byteImage = Base64Decoder().convert(thumbnail);
        Widget image = Image.memory(_byteImage);
        return image;
      }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Base64:无效长度必须是四的倍数:颤振错误 的相关文章

  • 传递 Stack 中两个小部件之间的所有手势

    我正在开发一个应用程序 在地图上显示标记 如下所示 它的工作方式是标记在地图小部件 上方 呈现为Stack 我的问题是 目前 标记 吸收 用于控制下方地图的手势 如果手势在标记上开始 因此我想知道 有没有办法在堆栈中的两个小部件之间传递所有
  • 将图像编码为base64有什么效果?

    如果我将图像 jpg 或 png 转换为 base64 那么它会更大 还是具有相同的大小 会大多少呢 是否建议在我的网站上使用 Base64 编码的图像 大约会大 37 非常粗略地说 Base64 编码的二进制数据的最终大小等于原始数据大小
  • 使用 mongoose 通过 React 应用程序将图像上传到 mongodb 数据库

    我正在为找到的对象创建一个反应应用程序 我想允许用户上传这些对象的照片 我尝试使用 axios 通过 post 请求将图像发送到猫鼬服务器 但它不起作用 这就是我如何将图像存储在带有预览的 React 组件中 handleImage eve
  • 如何实现类似预编译指令的功能

    我正在开发一个 Angular 应用程序 建议对生产中运行的许多东西使用生成的代码 即模板缓存 表达式缓存和静态 DI 注入器 目前没有在不同构建配置之间切换的好方法 因此我使用推荐的模式here https github com angu
  • Flutter 深度链接

    据Flutter官方介绍深层链接页面 https flutter dev docs development ui navigation deep linking 我们不需要任何插件或本机 Android iOS 代码来处理深层链接 但它并没
  • 下载后从谷歌照片库检索图像

    我正在发起从图库中获取照片的意图 当我在图库中使用 Nexus 谷歌照片应用程序时 一切正常 但如果图像不在手机上 在 Google Photos 在线服务上 它会为我下载 选择图像后 我将图像发送到另一个活动进行裁剪 但在下载的情况下 发
  • 滑动返回手势颤动

    如何在颤振中实现从左侧滑动返回的手势 不确定它是否已经在 iOS 上自动实现 但我也希望在 Android 上也能实现 因为事情正在变得基于手势 Use CupertinoPageRoute使其在 Android 上运行 import pa
  • VideoCapture.read() 返回过去的图像

    我在跑python3 6 with openCV on the Raspberry pi OS is Raspbian 代码的大致结构如下 The image以时间间隔 3 5 分钟 捕获 被捕获image在函数中处理并返回度量 精度的种类
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open
  • 尝试在模拟器上安装第二个 flutter 应用程序时出错

    我创建了一个简单的 flutter 应用程序并在 android 模拟器上运行它 效果还不错 现在我创建了另一个 当我尝试在模拟器上运行它时 我得到 Error ADB exited with exit code 1 adb failed
  • dart json.encode(data) 不能接受其他语言

    我目前正在使用 Dart 进行 Web 开发 使用mockclient实现服务 但是 出现以下错误 下面的实现代码是一个继承mockClient的内存web api服务 调用client send 并返回结果的代码 test value是j
  • 如何在 TextField 中垂直居中不同大小的hintText?

    我有一个TextField像这样 输入文本和提示文本的大小不同 TextField style Theme of context textTheme subhead copyWith fontSize 70 0 decoration Inp
  • 我实现了检查用户权限的方法,即使我在颤振中收到错误消息“MissingPluginException”?

    我实现了方法检查权限状态即使我收到一条错误消息 未处理的异常 MissingPluginException 在通道 flutter baseflow com permissions methods 上找不到方法 checkPermissio
  • 如何在没有 firebase 的情况下在 flutter 中显示推送通知?

    在我的 flutter 应用程序中 我必须在没有 firebase 的情况下显示推送通知 我的服务器会在点击特定 API 后向我发送一条消息 并且我希望将该消息显示为推送通知 你能告诉我一种方法如何在颤振中做到这一点吗 您可以使用本地通知插
  • 如何让flutter应用程序在android导航栏后面绘制并使导航栏完全透明?

    我想让我的 Flutter 应用程序占据 Android 中的整个屏幕 同时仍然显示状态栏和导航栏 并且两者都是透明的 以实现全屏 如下所示iOS https codelabs developers google com codelabs
  • 如何用python创建透明的径向渐变?

    我正在尝试创建一个渐变到清晰背景的径向渐变 我的目标是创建这个渐变并将其作为背景粘贴到另一个图像 到目前为止 我已经能够创建圆形渐变 但它不透明 我在 stackoverflow 中找到了以下代码 imgsize 650 650 image
  • 扩展运算符可以用来提供函数参数吗?

    我正在编写扩展 statelessWidget 的类 它的 build 方法返回Text 小部件 我需要将来自构造函数的文本选项 对齐 阶梯等 传递给它Map
  • 如何加载图像文件到ImageView?

    我试图在从文件选择器中选择图像文件后立即显示该图像文件 文件选择器仅限于 png 和 jpg 文件 所选文件存储在文件类型的变量中 为此 我设置了一个 ImageView 我希望用这个新文件设置图像 唯一的问题是它的类型是文件而不是图像 如
  • 使用 Riverpod 处理身份验证

    我正在尝试获取 Riverpod 但遇到了一些问题 我创建了一个用于登录用户的表单 并且尝试在用户登录时更改主视图 我的问题是 当我设置更改状态并导航回应用程序根目录时 新状态似乎不可用 但是 如果我保存文件或热重新加载应用程序 则新状态可
  • Visual Studio:如何将图像资源存储为嵌入式资源?

    默认情况下 当您将图像 图标 位图等 作为资源添加到项目中时 该图像的构建行动被设定为None 这样做是因为图像神奇地存储在 resources 文件中 I希望将资源存储为嵌入式资源 我的原因无关紧要 但让我们假装这样我可以在里面看到它们R

随机推荐