Отправка снимка экрана из проекта C # Unity в сокет Python - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь создать проект, в котором у меня есть виртуальная среда с камерами, и я хочу отправить скриншоты выбранных камер через сокет клиенту Python, который будет работать на малиновом пи ноль.В малине у меня будет дополнительная обработка, но это не моя текущая проблема.

Я смотрел на захват экрана в единстве, был проект, который, казалось, выполнил съемочную часть совершенно правильно, хотя у меня есть некоторыепроблема с адаптацией кода из https://assetstore.unity.com/packages/tools/camera/screenshot-helper-102472 У меня есть

 ScreenshortHelper.iCaptureWithCamera(camera, (texture2D) => {//Code}};

Смогу ли я вставить код "send" в блок "// Code"?

И чтоДля меня это немного сложно, посылая «текстуру» через сокет, я думал о том, чтобы сначала отправить некоторые параметры, такие как размер и размеры, чтобы я знал, что я получу на конце Python.Имеет ли это смысл?

Я ценю любую помощь, которую вы можете мне оказать!

Заранее спасибо.

1 Ответ

0 голосов
/ 06 октября 2018

Во-первых, вам нужно настроить API транспортного уровня в вашем коде Unity и поместить ссылки на ваш hostId и channelId где-нибудь, где эта функция сможет получить к нему доступ.

Тогда эта анонимная функция может быть:

(texture2D) => {
    // Encode it to PNG bytes and put it into a buffer:
    byte[] buffer = texture2D.EncodeToPNG();

    // Connect to the python listener:
    byte error;
    connectionId = NetworkTransport.Connect(hostId, "192.168.1.42", 8888, 0, out error);

    // Send:
    int bufferLength = bytes.Length;
    NetworkTransport.Send(hostId, connectionId, channelId, buffer, bufferLength, out error);

    // Disconnect:
    NetworkTransport.Disconnect(hostId, connectionId, out error);
}

И затем, с другой стороны, вы можете использовать Python для прослушивания двоичного потока, а затем делать с ним все, что вам нужно.Вот некоторая полезная информация о том, как читать изображение через сокет в Python здесь: Получить изображение с помощью программирования сокетов в Python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...