Python:将 sRGB 颜色配置文件和 alpha 通道应用于图像
Python: Apply sRGB colour profile and alpha channel to image
我在尝试使用 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 中得到这个结果?
P.S。原始图像确实有一个 alpha 通道和 sRGB 颜色配置文件。
非常感谢任何帮助!
您可以按如下方式阅读您的图片。它将加载您的图像,包括 alpha 通道。
img = cv2.imread(inputPath,-1)
更新
以下代码等同于上面给出的答案,因为 cv2.IMREAD_UNCHANGED=-1
在 documentation 中。虽然上面的代码片段解决了这个问题,但使用它并不是一个好的编程习惯,因为它没有给出 -1
真正做什么的想法。但是下面的代码片段给出了关于代码行为的明确想法。
img = cv2.imread(input,cv2.IMREAD_UNCHANGED)
我在尝试使用 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 中得到这个结果?
P.S。原始图像确实有一个 alpha 通道和 sRGB 颜色配置文件。
非常感谢任何帮助!
您可以按如下方式阅读您的图片。它将加载您的图像,包括 alpha 通道。
img = cv2.imread(inputPath,-1)
更新
以下代码等同于上面给出的答案,因为 cv2.IMREAD_UNCHANGED=-1
在 documentation 中。虽然上面的代码片段解决了这个问题,但使用它并不是一个好的编程习惯,因为它没有给出 -1
真正做什么的想法。但是下面的代码片段给出了关于代码行为的明确想法。
img = cv2.imread(input,cv2.IMREAD_UNCHANGED)