首页 > 解决方案 > Python:将 sRGB 颜色配置文件和 Alpha 通道应用于图像

问题描述

我在尝试使用 sRGB 和 alpha 通道保存 png 图像时遇到了麻烦。我首先裁剪图像,然后像这样保存它:

from PIL import Image
import cv2

inputPath = 'picture.png'
img = cv2.imread(inputPath)

crop_img = img[bounds[3]:bounds[2], bounds[1]:bounds[0]]
pth = name + ".png"
crop_img.save(pth)

然而,这会创建一个像这样的文件:

我希望文件是这样的:

我怎样才能在 python 中得到这个结果?

PS 原始图像确实具有 alpha 通道和 sRGB 颜色配置文件。

任何帮助是极大的赞赏!

标签: pythonopencvpngalphacolor-profile

解决方案


您可以按如下方式阅读您的图像。它将加载您的图像,包括 alpha 通道。

img = cv2.imread(inputPath,-1)

更新

以下代码等效于上述给出的答案,因为 cv2.IMREAD_UNCHANGED=-1文档中。尽管上面的代码片段解决了这个问题,但使用它并不是一个好的编程习惯,因为它没有给出关于真正-1做什么的想法。但是下面的代码片段给出了关于代码行为的明确概念。

img = cv2.imread(input,cv2.IMREAD_UNCHANGED)

推荐阅读