Я хочу поменять изображение, созданное программой на Python, на другую работающую программу на языке Python, используя строку.
(я должен использовать строку , потому что в реальном приложении строка идет из C-программы, а не из программы Python, но это не имеет значения)
Итак, с одной программой мне нужно прочитать, что другая напечатала в консоли.
Но, как я это сделал сейчас, это не работает, изображение передается неправильно, когда я запускаю две программы параллельно, изображение просто серое, поэтому строка считывателя не похожа на напечатанную строку.
Где здесь моя ошибка?
Программа отправителя:
import time
from PIL import Image
import sys
image = Image.open("t.png")
while True:
print(image.tobytes())
time.sleep(5)
Программа получателя:
import os
import sys
from PIL import Image
from subprocess import Popen, PIPE, STDOUT
script_path = os.path.join('lsend.py')
p = Popen([sys.executable, '-u', script_path],
stdout=PIPE, stderr=STDOUT, bufsize=1)
while True:
string = p.stdout.readline()
print("image received !!!")
print(string[0:10])
try:
image = Image.frombytes('RGBA',(90, 36),string,"raw")
image.show()
except:
print("fail")
Мое изображение:
мое тестовое изображение
Спасибо за ваши ответы!