Win10上的PIL模块保存功能仅返回黑色图像

时间:2018-10-20 18:00:38

标签: python windows-10 python-imaging-library screenshot

我在通过Windows 10上的PIL.Image.save函数保存屏幕截图时遇到问题。 PIL.Image.show()函数可以正常工作,并且可以按预期表示屏幕快照,但是保存功能可以将图像保存为全黑图片。 使用PIL内部功能可以正常保存图片吗?

spring.datasource.url=jdbc:postgresql://localhost:5432/<database name>

1 个答案:

答案 0 :(得分:0)

这里的问题是您要处理两个函数。
因此,您的函数将创建局部变量。
因此,保存功能中的“屏幕”为空->将为黑色。

以供参考:Python Global, Local and Nonlocal variables

from PIL import ImageGrab
import os
from PIL import Image

path='C:/ProgramData/'

player_id='1'
player_name='player'
_format='PNG'

pic_name = player_id + '.' + _format
screen = Image.Image
screen = Image.new("RGB", (1280, 720), 0)
def make_screen_shot():
    try:
        screen = ImageGrab.grab()
        screen.show()
        save_pic(screen)         
    except IOError:
        return False
    else:
        return True

def save_pic(image):
    screen = image
    pic_name = player_id + '.' + _format
    try:

        screen.save("test.png") #here you can use your save function just renamed for testing
    except IOError:
        return False
    else:
        return True
make_screen_shot()

这将起作用:) 您也可以创建全局变量或直接将其保存在上面。