Как обратиться к переменным из другой функции?
def add_watermark_imp(image, watermark, opacity=1):
assert 0 <= opacity <= 1
if opacity < 1:
if watermark.mode != 'RGBA':
watermark = watermark.convert('RGBA')
else:
watermark = watermark.copy()
alpha = watermark.split()[3]
alpha = ImageEnhance.Brightness(alpha).enhance(opacity)
watermark.putalpha(alpha)
layer = Image.new('RGBA', image.size, (0, 0, 0, 0))
layer.paste(watermark, (a, b)) <- как тут взять переменные с функции start?
return Image.composite(layer, image, layer)
@KB191.message_handler(content_types=['text'])
def start(message):
if message.text == "/start":
KB191.send_message(message.from_user.id, "...")
if message.text == "там та":
a = 300
b = 500
elif message.text == "там та...":
a = 600
b = 400
else:
pass
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
параметры лучше передавать в функций add_watermark_imp(image, watermark, opacity=1, a, b), но можете попробывать вот так:
temp = [300, 500]
def add_watermark_imp(image, watermark, opacity=1):
....
layer = Image.new('RGBA', image.size, (0, 0, 0, 0))
a, b = temp
layer.paste(watermark, (a, b))
return Image.composite(layer, image, layer)
@KB191.message_handler(content_types=['text'])
def start(message):
....
if message.text == "там та":
temp[0] = 300
temp[1] = 500
elif message.text == "там та...":
temp[0] = 600
temp[1] = 400