将json字符串转换为jpg

问题描述 投票:0回答:1

我有这三个命令,它们可以正常工作并将图像编码为json。

encoded_string=$(base64 volunteers.jpg)

payload="{\"instances\": [{\"image\": {\"b64\": \"$encoded_string\"}}]}"

echo $payload >input.json

但是如何将其转换回jpg格式?这将返回错误“ base64:无效输入

cat '/"' input.json '/"' | jq -r '.instances[0].image.b64' | base64 -d >output.jpg
base64 jq
1个回答
0
投票

问题最有可能是由于在图像的编码部分期间创建了嵌入的换行符。您可以通过在原始尝试中使用tr -d \\n来删除它们,并使用jq功能的输入略微重写一下,以便从标准输入中读取。

jq -Rn '.instances[0].image.b64 = inputs' < <(base64 volunteers.jpg | tr -d \\n) > input.json

然后将创建的JSON解码为

jq -r '.instances[0].image.b64' input.json | base64 -d > final.jpg
© www.soinside.com 2019 - 2024. All rights reserved.