Есть ли способ записать изображение в память с помощью Python и прочитать его из другого приложения, написанного на C++?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Есть ли способ записать изображение в память с помощью Python и прочитать его из другого приложения, написанного на C++?

Сообщение Anonymous »

Я хотел бы создать и записать образ в память таким образом, чтобы другие процессы могли его прочитать. Цель состоит в том, чтобы сценарий Python создавал некоторый график с использованием matplotlib.pyplot, записывал его в память в виде файла png, а затем приложение Qt, написанное на C++ или Python, считывало это изображение и имело возможность отображать его в своем собственном окне, используя возможности Qt. Я бы особенно не хотел сохранять изображение на жесткий диск.
ЕСЛИ бы я использовал жесткий диск в качестве моста между двумя процессами, мой код выглядел бы примерно так:
Скрипт Python для создания изображения и сохранения его в формате png:

Код: Выделить всё

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y, marker = "o", linestyle = "-")
plt.savefig("my_graph.png")
Приложение Qt, написанное на Python и имеющее класс GraphWidget для его визуализации:

Код: Выделить всё

class GraphWidget(QWidget):
def __init__(self, parent : parent : Optional[QWidget] = None) -> None:
super().__init__(parent)

def paintEvent(self, event):
painter = QPainter(self)
painter.drawPixmap(0, 0, QPixmap("./my_graph.png"))
В этом примере приложение Qt написано на Python, потому что на момент написания его удобнее предоставить пример на Python (я обновлю вопрос с кодом C++, как только насколько это возможно), но суть та же. Этот код использует жесткий диск как средство обмена образом между двумя процессами. Есть ли способ добиться того же результата без использования диска и записи изображения прямо в память с помощью Python и чтения его из памяти с помощью C++?
Если это невозможно сделать с помощью используя память, можете ли вы предложить какие-либо альтернативы для достижения того же результата без использования жесткого диска?
Я начинающий программист, и это мой первый вопрос за многие годы, поэтому буду рада любой помощи. признателен, что это может расширить мое представление о возможных решениях.

Подробнее здесь: https://stackoverflow.com/questions/787 ... om-another
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»