파이썬 예제 (동영상 플레이어)

이미지
비디오 재생 예전 게시물 중 음악파일 플레이어 를 파이썬으로 만든 예제가 있습니다. Qt 의 QMediaPlayer , QMediaPlaylist class를 이용해 mp3 등 음악 파일을 재생하는 원리입니다. 아래와 같이 사용합니다. from PyQt5.QtWidgets import QApplication from PyQt5.QtMultimedia import QMediaPlaylist, QMediaPlayer, QMediaContent from PyQt5.QtCore import QUrl import sys if __name__ == '__main__': app = QApplication(sys.argv) playlist = QMediaPlaylist() url = QUrl.fromLocalFile('test.mp3') playlist.addMedia(QMediaContent(url)) player = QMediaPlayer() player.setPlaylist(playlist) player.play() sys.exit(app.exec_()) PlayList를 생성해 파일을 추가하고, Player의 play() 함수를 수행하면 음악이 재생됩니다. 이번에는 동영상 플레이어 (Video Player) 를 Python + PyQt5 를 이용해 만들어 보았습니다. 기본 원리는 위와 같지만 비디오을 출력할 위젯 (QVideoWidget)만 설정 하면 동영상이 재생되는 원리입니다. [동영상 재생 프로그램] 주요기능 재생 리스트에 동영상 파일 추가, 삭제 (*.avi. *.mp4, *.mkv, *.m

파이썬 예제 (도형 회전)

이미지
오늘은 Python + PyQt5 를 이용, 사각형의 회전 을 구현해 봤습니다. [사각형 회전] 우선, 어떤 도형(원, 삼각형, 사각형 등)을 회전하는 방법 을 생각하면 가장 먼저 드는 생각은 아래와 같습니다. 도형 중심 좌표 를 기준으로 도형의 끝점들을 찾아 원하는 각도로 cos, sin 함수를 이용, 회전된 좌표를 찾아낸 후 다시 좌표를 직선으로 이어 그리는 방식 그런데 회전시켜야 할 도형이 많다거나, 글자 등도 회전시켜야 하는 경우는 모든 대상마다 적용해야 하므로 코드가 지저분해지기 쉽습니다. 하지만 Qt의 QPainter class를 이용하면 간편하게 좌표 회전이 가능합니다. QPainter의 rotate() 함수 를 이용하면, 내부적으로 행렬 연산(Matrix) 을 통해 Coordinate System 자체를 회전시킵니다. 회전시킨 후 그림을 그리면 회전된 모습으로 그림이 그려지는 방식입니다. [Qt 좌표변환, 출처 : Qt 홈페이지] 위 그림을 참조하면 회전, 이동, 확대, 축소 까지 모두 가능한 것을 확인해 볼 수 있습니다. 그럼 소스 코드를 살펴보겠습니다. import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True) class CWidget(QWidget): def __init_

C++ 예제 (소켓 클라이언트, 이미지, 파일전송)

이미지
이전 게시물인 소켓 프로그래밍 서버 에 이은 클라이언트 측에 대한 설명입니다. [클라이언트 실행화면] 기본적인 소켓 프로그래밍에 대한 개요, 프로토콜, 실행파일, 전체 소스코드 는 이전 게시물인 서버측을 참조 바랍니다. 제작된 클라이어트와 앞서 만든 서버측간 이미지, 파일 전송 테스트 진행 결과입니다. 이미지 전송 테스트 서버, 클라이어언트 테스트는 내부 사설 IP 환경 (192.168.XXX.XXX) 에서 테스트 되었으며, 외부 네트워크와 테스트시 서버가 실행되는 PC는 공인 IP 로 설정 or 사설 IP의 경우 포트포워딩 이 필요합니다. 서버 실행, 클라이어트 2개 연결 [테스트 준비] 클라이언트 파일 보내기 버튼 클릭 이미지, 파일 필터 선택 [CFileDialog 생성] 테스트 이미지 선택, 전송 test.bmp 파일, (Size 23Mbyte) 서버측에 전달된 후 다시 클라이언트

C++ 예제 (소켓 서버, 이미지, 파일전송)

이미지
이번 주제는 C++ 과 MFC 를 이용한 소켓 프로그래밍 입니다. 심화반 수강생 중 C++로 소켓 프로그래밍을 진행하는 학생이 있어 참조할만한 간단 예제로 만들어 보았습니다. 인터넷 검색을 통해 찾아본 대부분의 소켓프로그래밍 예제는 1:1 연결이거나, 1:N 이지만 문자열만 전송가능하거나, 또는 이미지만 전송가능한 경우가 대부분이었습니다. 이 예제는 문자열, 이미지, 파일에 대한 전송 이 모두 가능하도록 만들어져 있습니다. 아래 링크된 서버와 클라이언트 (여러개) 실행파일을 이용해 테스트 가능합니다. 1. 서버 실행, 접속 대기 2. N개의 클라이언트 실행, 서버로 접속 3. 클라이언트 데이터 전송 (문자, 이미지, 파일 등) 4. 서버 데이터 수신 5. 접속된 모든 클라이언트로 수신 데이터 전송 [서버-클라이언트 통신 개요] 서버 프로그램 실행파일 : 서버 클라이언트 프로그램 실행파일 : 클라이언트 전체 소스코드 : 소스코드 (VS 2017) 이 글에서는 서버 에 대한 내용을 다룹니다. 개요 서버의 주요 사항은 아래와 같습니다. Winsock API Ver. 2.2 를 이용한 서버 소켓 클래스 생성 클라이언트 접속자 리스트 관리 (ip, port, 접속 시점) 문자, 이미지, 파일 전송 기

이 블로그의 인기 게시물

Qt Designer 설치하기

C++ 예제 (소켓 서버, 이미지, 파일전송)