[問題] socket程式傳jpg與png檔差異已刪文

看板Python作者 (--)時間4年前 (2020/04/20 22:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
小弟用socket programimg傳jpg檔成功, 但同樣程式改成png檔卻失敗, 請問版上高手該如何修改?謝謝!! 說明:以下程式是jpg成功版本, png失敗版本是把server.py三行註解code拿來用 server.py (傳圖檔出去) =========================== import socket import cv2 import numpy frame = cv2.imread('f00000.jpg') #frame = cv2.imread('166.png') ###############png失敗版本 TCP_IP = "127.0.0.1" TCP_PORT = 9955 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((TCP_IP, TCP_PORT)) s.listen(True) conn, addr = s.accept() encode_param=[int(cv2.IMWRITE_JPEG_QUALITY),90] result, imgencode = cv2.imencode('.jpg', frame, encode_param) ###############png失敗版本 #encode_param=[int(cv2.IMWRITE_PNG_COMPRESSION),3] #result, imgencode = cv2.imencode('.png', frame, encode_param) data = numpy.array(imgencode) stringData = data.tostring() conn.send( str(len(stringData)).ljust(16)); conn.send( stringData ); decimg=cv2.imdecode(data,1) cv2.imshow('SERVER2',decimg) cv2.waitKey(3000) stringData = '100' conn.send(stringData); =========================== client.py (接收圖檔) =========================== import socket import cv2 import numpy TCP_IP = "127.0.0.1" TCP_PORT = 9955 sock = socket.socket() sock.connect((TCP_IP, TCP_PORT)) while 1: newbuf = sock.recv(16) if int(newbuf) == 100: break stringData = sock.recv(int(newbuf)) data = numpy.fromstring(stringData, dtype='uint8') decimg=cv2.imdecode(data,1) cv2.imshow('CLIENT2',decimg) cv2.waitKey(5000) sock.close() cv2.destroyAllWindows() =========================== -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.57.228 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1587392279.A.6A8.html
文章代碼(AID): #1UdQyNQe (Python)