Muh*_*ama 8 python-3.x google-cloud-functions
我正在研究 GCP 云函数,并打算编写一个组合两个图像的函数。但是当我调用该函数时,出现以下错误:
回溯(最近一次调用最后一次):文件“/env/local/lib/python3.7/site-packages/google/cloud/functions/worker.py”,第346行,在run_http_function result = _function_handler.invoke_user_function(flask.request )文件“/env/local/lib/python3.7/site-packages/google/cloud/functions/worker.py”,第 217 行,invoke_user_function return call_user_function(request_or_event) 文件“/env/local/lib/python3.7” 7/site-packages/google/cloud/functions/worker.py”,第 210 行,在 call_user_function return self._user_function(request_or_event) 文件“/user_code/main.py”,第 74 行,在执行 newIntro=generateIntroImage(nameMappings[ 'stdName']、nameMappings['stdPicture']、nameMappings['logo']、nameMappings['stdYear']、nameMappings['font']) 文件“/user_code/main.py”,第 12 行,在generateIntroImage 图像中。附加(Image.open(logo))文件“/env/local/lib/python3.7/site-packages/PIL/Image.py”,第2862行,打开“无法识别图像文件%r”%(文件名如果文件名 else fp) PIL.UnidentifiedImageError: 无法识别图像文件 '/tmp/logo.jpg'
我已在本地计算机上运行此函数,它按预期工作,但当我将其部署到 GCP 上时,它会出现此错误并崩溃。这是我的功能:
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
def generateIntroImage(stdName, stdPicture, logo, year, typeFace):
images = [Image.open(x) for x in [stdPicture, logo]]
widths, heights = zip(*(i.size for i in images))
total_width = sum(widths)
max_height = max(heights)
new_im = Image.new('RGB', (total_width, max_height))
x_offset = 0
for im in images:
new_im.paste(im, (x_offset,0))
x_offset += im.size[0]
font= ImageFont.truetype(typeFace, 70)
draw= ImageDraw.Draw(new_im)
draw.text((0, 0), stdName+"'s " +year+" Year Book", (0,0,0),font= font)
fileName= "/tmp/test.jpg"
new_im.save(fileName)
return fileName
Run Code Online (Sandbox Code Playgroud)
这些图像是 .jpg 和 .png 文件。知道可能出什么问题吗?