如何将图像转换为 Base64 字符串,并转换回图像,保存到 azure blob
Posted
技术标签:
【中文标题】如何将图像转换为 Base64 字符串,并转换回图像,保存到 azure blob【英文标题】:How to convert image to Base64 string, and convert back to image, save to azure blob 【发布时间】:2021-08-18 19:06:48 【问题描述】:希望我描述的正确,而且可能非常简单
尝试将图像作为 base64 字符串在 json 有效负载中传递给用 Powershell 编写的 azure 函数,同时旨在将其最终作为结构化 azure blob 存储中的图像。
将本地文件编码为Base64:
$content = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes([System.IO.File]::ReadAllText("$fileName")))
打包、发送和接收 json 负载没有问题。
在 Azure 函数中,http 触发器
解码base64
$image = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($base64Content))
从那里,输出到 blob:
Push-OutputBinding -Name outputBlob -Value $ImageBytes
输出的标准绑定:
"name": "outputBlob",
"path": "container/filename",
"connection": "connectionName",
"direction": "out",
"type": "blob"
生成的 blob 不是图像,假设它是解码。
提前谢谢..
【问题讨论】:
您遇到了什么问题?请编辑您的问题并提供该信息。还有$ImageBytes
从哪里来?是不是错字,应该是$bytes
?
能否详细描述您的问题?
【参考方案1】:
关于问题,请参考以下代码
功能代码
using namespace System.Net
# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."
$image=$Request.Body.Image
#read base64 image as bytes
$imageBytes=[System.Convert]::FromBase64String($image)
Push-OutputBinding -Name outputBlob -Value $imageBytes
输出的标准绑定:
"name": "outputBlob",
"path": "outcontainer/filename",
"connection": "connectionName",
"direction": "out",
"type": "blob"
用于发送请求的脚本
$fileName="faces.jpg"
$content=Get-Content -Path $fileName -Encoding Byte
$image=[System.Convert]::ToBase64String($content)
$body= @"fileName"=$fileName;"image"=$image|convertto-json
Invoke-WebRequest -Method Post -Uri "<url>" -Body $body -ContentType "application/json" -UseBasicParsing
【讨论】:
以上是关于如何将图像转换为 Base64 字符串,并转换回图像,保存到 azure blob的主要内容,如果未能解决你的问题,请参考以下文章
如何将存储在数据库中的 Base64 字符串集合转换为普通图像存储在本地目录中
如何将 base64 字符串格式的图像转换为清晰图像缩小器期望的数据类型?