我正在忙着用pygame和WX進行一些自我學習項目,我正在努力提高自己的技能。我想在python 2.7.3中通過套接字服務器發送png,並將png加載到pygame中。 我已經確認我可以收到本地主機的PNG,但我不能加載我的PNG。pygame 1.9似乎沒有加載PNG
那是給這個麻煩的RDPC.py文件:
import os
import sys
import pygame
from pygame.locals import *
from threading import Thread
import time
import socket
import shutil
def recvFile():
file = open("data2/screenshot.png","wb")
while 1:
data = s.recv(2048)
if not data:
break
file.write(data)
file.close()
shutil.copyfile('data2/screenshot.png', 'data2,screen.png')
image = pygame.image.load('data2/screen.png')
screen.blit(image,(0,0))
pygame.display.flip()
class RDPclient(object):
def main(self, rdpserver):
self.insert(rdpserver)
def insert(self, rdpserver):
done = False
while not done:
for event in pygame.event.get():
x,y = pygame.mouse.get_pos()
if event.type == MOUSEBUTTONDOWN:
rdpserver.mouse(x,y)
elif event.type == MOUSEMOTION:
if event.type == MOUSEBUTTONDOWN:
self.mouseDragEvent(x,y)
self.mouseMoveEvent(x,y)
if (event.type == KEYDOWN):
rdpserver.keyboard(event)
if (event.type == KEYUP):
rdpserver.keyboard(event)
if (event.key == K_ESCAPE):
done = True
def mouseDownEvent(self,x,y):
pass
def mouseUpEvent(self,x,y):
pass
def mouseDragEvent(self,x,y):
pass
def mouseMoveEvent(self,x,y):
pass
pygame.init()
screen = pygame.display.set_mode((1024,768), pygame.RESIZABLE)
white = (255, 255, 255)
screen.fill(white)
pygame.display.set_caption('PyRDP')
pygame.mouse.set_visible(1)
t_bytes = 1024*1024*1
HOST = '127.0.0.1'
PORT = 9999
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
rec = Thread(target=recvFile)
rec.start()
只有上面的代碼recvFile功能是給我找麻煩。
如果您需要代碼的其他部分,請回發並儘快發佈。
當你調用'shutil.copyfile'時,與你使用字符串''data2,screen.png''而不是''data2/screen.png''有什麼關係,但是嘗試加載它爲' 「數據2/screen.png''? – Haz
這是一個錯誤,而試圖把代碼堆棧溢出。我嘗試了下面的建議,將所有客戶端文件放在屏幕截圖所在的位置。屏幕確實變白,但圖像未加載。 – AlexiK