我使用numpy对python中的某些灰度图像进行了一些数学运算。
现在,我想将生成的numpy数组作为png图像上传到我的S3存储桶。 我试图将它们上传为base64格式,但是那样我无法将它们作为S3中的图像打开。我的代码如下:
dec=base64.b64decode(numpy_image)
s3.Bucket('bucketname').put_object(Key='image.png',Body=dec, ContentType='image/png',ACL='public-read')
当我尝试从S3打开文件时,它说文件包含错误
答案 0 :(得分:1)
所以我需要先将numpy数组转换为图像。 原来的代码可以正常工作:
from PIL import Image
import io
img = Image.fromarray(numpy_image).convert('RGB')
out_img = BytesIO()
img.save(out_img, format='png')
out_img.seek(0)
s3.Bucket('my-pocket').put_object(Key='cluster.png',Body=out_img,ContentType='image/png',ACL='public-read')
答案 1 :(得分:0)
这可以在CV2库中使用
public enum GrayscaleColors {
WHITE,
GREY,
BLACK;
GrayscaleColors() {
// Will throw if no corresponding name exists.
AllColors.valueOf(name());
}
}