Del*_*lla 6 python arrays base64 numpy image-processing
我知道如何通过读取文件将磁盘中的图像转换为 base64 。但是,在这种情况下,我的程序中已经将图像作为一个 numpy 数组,通过相机捕获,例如image[:,:,3]
. 如何将其转换为 base64 字符串,以便仍然可以恢复图像?我试过这个。
from base64 import b64encode
base64.b64encode(image)
Run Code Online (Sandbox Code Playgroud)
它确实给了我一个字符串,但是当我使用https://codebeautify.org/base64-to-image-converter进行测试时,它无法渲染图像,这意味着转换中有问题。请帮忙。
我知道一个解决方案是将图像作为 jpg 图片写入磁盘,然后将其读入 base64 字符串。但显然,当我可以避免它时,我不想要文件 i/o。
这是一个示例,显示您需要执行的操作:
from PIL import Image
import io
import base64
import numpy
# creare a random numpy array of RGB values, 0-255
arr = 255 * numpy.random.rand(20, 20, 3)
im = Image.fromarray(arr.astype("uint8"))
#im.show() # uncomment to look at the image
rawBytes = io.BytesIO()
im.save(rawBytes, "PNG")
rawBytes.seek(0) # return to the start of the file
print(base64.b64encode(rawBytes.read()))
Run Code Online (Sandbox Code Playgroud)
我可以将打印的字符串粘贴到base64 图像转换器中im.show()
,当网站放大图像时,它看起来类似于。
创建图像时,您可能需要操作数组或提供适当的PIL 模式
归档时间: |
|
查看次数: |
4983 次 |
最近记录: |