Изображения не отображаются в киви - PullRequest
0 голосов
/ 03 августа 2020

У меня есть следующий код:

import socket               
from PIL import Image as im 
import numpy as np
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import Image
from kivy.clock import Clock
from kivy.graphics.texture import Texture

def Get_data(host,port):
    s = socket.socket()      
    s.connect((host, port))
    data = s.recv(1024)
    s.sendall(data)
    image = b''
    size = 0
    while size < int(data.decode('UTF-8')):
        in_data = s.recv(102400000)
        size += len(in_data)
        image = image + in_data
    s.close()  

    Photo = im.frombytes( 'RGB' , (500,500) , image)
    return Photo


class CamApp(App):

    def build(self):
        self.img1=Image()
        self.host  = '192.168.0.7' 
        self.port = 65017
        layout = BoxLayout()
        layout.add_widget(self.img1)
        self.lbl = Label(text ="Test Purpose ! ") 
        layout.add_widget(self.lbl)
        Clock.schedule_interval(self.update, 1.0/0.5)
        return layout

    def update(self, dt):
        frame = np.array(Get_data(self.host , self.port))
        buf1 = np.flip(frame, 0)
        buf = buf1.tobytes()
        texture1 = Texture.create(size=(frame.shape[1], frame.shape[0]), colorfmt='bgr') 
        texture1.blit_buffer(buf, colorfmt='bgr', bufferfmt='ubyte')
        self.img1.texture = texture1

if __name__ == '__main__':
    CamApp().run()

Он в основном получает изображения с сервера и использует их для отображения видео. Когда я запускаю этот код на своем компьютере, он работает отлично, и вы можете увидеть вывод видео в kivy. Но когда я пытаюсь запустить его на своем телефоне (используя Pydroid 3), видео не отображается. Я знаю, что приложение открывается, когда отображается метка, и сервер показывает, что мой телефон подключен. Я также могу сохранить изображение на свой телефон, поэтому он определенно получает изображение, но не отображается.

В чем проблема?

...