PIL -调整图像大小-不同的numpy数组



我正在从S3桶读取图像,然后调整图像的大小并获得调整大小的图像的numpy数组,称为"a"。我还保存了调整大小的图像并重新打开它,并获得名为"b"的numpy数组。我的问题是为什么a和b不同?

resp = s3.get_object(Bucket=event['bucket'], Key=event['image_keys'][0])
data = resp['Body']
image_as_bytes = io.BytesIO(data.read())
image = Image.open(image_as_bytes).convert('RGB').resize((299, 299),Image.NEAREST)
a = np.asarray(image)

image.save('IMAGE_58990004_110132026B_13d64039_resized_lambda.jpg')
b = np.asarray(Image.open('IMAGE_58990004_110132026B_13d64039_resized_lambda.jpg'))

做".save"改变numpy数组?

假设image.save(...)使用文件名结尾(.jpg)来选择文件格式(我不知道它是否这样做)。但这似乎是合理的),然后你保存为JPEG文件,JPEG压缩算法是有损的,也就是说,它丢弃一些信息,使文件更小。

尝试使用无损压缩的文件格式,如PNG。

最新更新