连接两个 base64 URL 字符串(图片)

Posted

技术标签:

【中文标题】连接两个 base64 URL 字符串(图片)【英文标题】:Concatenating two base64 URL String (image) 【发布时间】:2019-06-11 04:49:40 【问题描述】:

所以我试图连接从我的相机生成的两个或多个 base64 URL 字符串(使用cordova-plugin-camera)。我正在尝试将其生成为一个 base64 URL 字符串,以便仅将其转换为一个图像。

我试图通过这样做手动连接它。

var compilation = ["data:image/jpeg;base64,"];
for(var x = 0; x < $scope.imageList.length; x++)
    compilation[0] = compilation[0] + $scope.imageList[x];

但那东西不起作用。有什么想法可以让这成为可能吗?

参考资料:

ios Concatenation

Join two Base64 strings and then decode them

谢谢!

【问题讨论】:

等等,你想达到什么目的?您想通过一个接一个地附加它们的 base64 表示来合并多个 图像?那是行不通的,我什至不明白你是如何希望它做出任何事情的。在你的脑海中会产生什么样的融合?更大的图像?两个图像都在另一个上绘制?无论如何,这一切都不会发生,你只会有一个没有意义的长字符串,就像"red"+"blue"不会返回"purple" @Kaiido 好的,我明白你的意思。我想你得到了我想要达到的目标。我相信将两个或多个 base64 URL 添加到一个中会产生一个大图像。但我认为你是对的,我不会发生。我认为其中一个画在另一个之上。那么实现这一目标的好方法是什么? 我不认为你可以混合两个 base64 图像,但你可以使用画布来实现,检查这个***.com/questions/32096540/… 【参考方案1】:

Base64 编码只是获取构成您正在编码的任何内容的位,在这种情况下是您的图像,并将它们转换为由 64 个字符字母组成的字符串。

您尝试做的实际上与将图像的原始位连接到单个位流并将其保存到文件中没有什么不同。由于图像文件格式包含标题数据和类似的东西,结果将是无效的图像。

最重要的是,如果源数据不是完整的 24 位块,base64 将在字符串末尾添加额外的字符。

这是base64 encoding and how it works的一个很好的分解

要完成您想要做的事情,您只需使用图像编辑器来组合图像,然后对其进行 base64 编码。

如果您想以编程方式执行此操作,您可以编写一个简单的 Web 服务,获取 2 个单独的 base64 编码图像,然后在服务中将它们连接在一起,然后返回新图像的 base64 编码字符串。

【讨论】:

好吧,我不确定 OP,但我来这里是为了“以编程方式执行此操作”。告诉我这是可能的对我没有多大帮助。我该怎么做?

以上是关于连接两个 base64 URL 字符串(图片)的主要内容,如果未能解决你的问题,请参考以下文章

JAVA将图片(本地或者网络资源)转为Base64字符串,将base64字符串存储为本地图片

在图像的 src 标记中使用来自 URL 的 Base64 字符串

ts 图片类型转换base64,url,file

调用支付宝人脸采集查询图片Base64解码

关于前端使用JavaScript获取base64图片大小的方法

java中图片地址base64编码的相互转换