python 과 node express 사이 이미지 주고 받기 구현

Client 는 Python 으로 작성 되었으며 Server 는 node express 로 된 시스템입니다.

양쪽 모두 웹소켓을 사용했습니다.

이미지를 서로 주고 받는데 한참을 헤메었네요.

일단 이미지를 base64 로 변환해서 json 으로 패키징 하여 서버에 전송하고

서버에서 받은 base64 데이터를 이미지로 변환하여 저장하는 로직입니다.

python 에서 이미지를 data에 가져오는 방법입니다.

data = io.BytesIO()
picam2.capture_file(data, format='jpeg')
print(data.getbuffer().nbytes)

가져온 이미지를 base64 로 변환한 후 다시 전송을 위한 데이터로 변환합니다.

img_base64 = base64.b64encode(data.getbuffer()).decode('utf-8')

전송할 데이터로 패키징 합니다.

responseData = { "type": "camera", "device_id": device_id, "data": img_base64 }

이제 웹소켓을 이용해서 전송합니다.

responseStr = json.dumps(responseData)
ws.send(responseStr)


이제 node express 에서 전송된 데이터를 받아서 이미지 처리하는 로직입니다.

받은 데이터로 이미지로 변환합니다.

const image = Buffer.from(data, 'base64')

변환된 이미지를 저장합니다.

writeFileSync('image.jpg', image)

정리해놓고 보니 간단하지만 로직을 이렇게도 해보고 저렇게도 해보고 한참을 헤메었습니다.

나중에 다시 참고할 때 편하도록....


댓글

이 블로그의 인기 게시물

한글 2010 에서 Ctrl + F10 누르면 특수문자 안뜰 때

아이폰에서 RFID 사용하는 방법

VCC 와 GND 는 무엇일까?