PIL 将透明 PNG 加载为 RGB?

mag*_*ter 2 python python-imaging-library

我正在尝试使用 PIL 合成一些航拍图像并遇到一些麻烦。我使用 PIL用这段代码加载这个图像

composite = Image.new('RGBA', (256, 256))
url = 'http://...'
resp = requests.get(url)
content = StringIO(resp.content)
image = Image.open(content)
composite.paste(image, (0, 0), image)
Run Code Online (Sandbox Code Playgroud)

当我调用 时composite.paste(),PIL 给我错误“ValueError: bad transparent mask”。当我打印时image.mode,果然它只是RGB而不是预期的RGBApaste()需要)。

我下载的 PNG 中的 alpha 通道在哪里?

ymm*_*mmx 5

以下代码对我有用:

from PIL import Image
import requests
import StringIO

url = "https://gis.apfo.usda.gov/arcgis/rest/services/NAIP/Tennessee_2016_60cm/ImageServer/exportImage?bbox=-87.1875,34.3071438563,-84.375,36.5978891331&bboxSR=4326&size=256,256&imageSR=102113&transparent=true&format=png&f=image"
resp = requests.get(url)
content = StringIO.StringIO(resp.content)
image = Image.open(content)
image = image.convert('RGBA')
composite = Image.new("RGBA", image.size, (255,255,255,0))
composite.paste(image )
Run Code Online (Sandbox Code Playgroud)