Skip to content

Jihyun0909/pixelart

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pixelart

픽셀아트 팀프로젝트

실행 방법

  1. 이 프로젝트는 pixelart 폴더 내의 pixart.sln 솔루션 파일을 중심으로 구성되어 있습니다.
  2. Visual Studio에서 pixart.sln을 열어 솔루션을 불러옵니다.
  3. Visual Studio에서 디버깅 없이 시작(Ctrl+F5) 을 클릭하여 실행합니다.

기능 설명

솔로모드 주요 기능

이미지 불러오기

사용자는 로컬 이미지를 선택하여 불러올 수 있으며, 내부적으로 픽셀화 처리가 수행됩니다.

픽셀 수 & 색상 선정

지정된 가로 픽셀 수를 기준으로 이미지가 픽셀화되며, 선택된 색상 공간(RGB, HSV, Oklab, YCbCr)을 기준으로 색상을 추출합니다.

색상 번호 도안 생성

각 픽셀은 대표 색상 중 하나로 매핑되며, 이를 기반으로 색상 번호를 갖는 그리드(numberGrid)를 생성하여 도안을 표시합니다.

색칠 도구

팔레트에서 색을 직접 지정하거나 대표 색상을 클릭하여 펜 색을 선택할 수 있으며, 펜 굵기(1×1, 3×3, 5×5) 및 분할 색칠 모드(같은 영역 전체 색칠)를 선택할 수 있습니다.

색칠하기

색칠할 셀을 클릭하면 펜 정보를 기반으로 해당 셀을 색칠할 수 있습니다.

색상 비교하기

대표 색상과 사용자가 색칠한 색상을 비교 패널을 통해 나란히 확인할 수 있습니다.

셀 정보

마우스를 셀 위에 올리면 대표 색상, 색칠된 색상, 유사도 정보를 확인할 수 있습니다.

전체 색칠 기능

현재 색상 군집 결과를 기반으로 전체 도안을 자동 색칠할 수 있습니다.

Undo / Redo 기능

색칠 작업은 기록되어 Ctrl+Z / Ctrl+Shift+Z 단축키로 실행 취소 및 재실행할 수 있습니다.

도안 저장하기

원본 이미지, 도안, 픽셀 크기, 대표 색상 등의 정보를 .gcsave 파일로 저장할 수 있습니다.

도안 불러오기

.gcsave 파일을 통해 저장된 도안을 불러오고, 기존 작업을 이어서 수행할 수 있습니다.


KMeans로 색칠하기

색 분할 수

KMeans의 색상 클러스터 수(K)를 지정하여 도안의 대표 색상을 결정합니다.

정밀 반복 횟수

KMeans 알고리즘의 반복 횟수를 설정하여 더 정교한 색상 분할을 할 수 있습니다.

KMeans 도안 생성

이미지에 대해 선택된 색상 공간(RGB, HSV, Oklab, YCbCr)을 기반으로 색 거리 계산을 수행하며, K와 반복 횟수에 따라 대표 색상과 번호가 결정된 도안을 생성합니다.


색상 단계로 색칠하기

난이도 설정

쉬움, 중간, 어려움, 매우 어려움 중 선택 가능하며, 난이도가 높아질수록 색상 분할 수가 많아집니다.

색상 단계 도안 생성

선택된 색상 공간의 각 요소(R, G, B 등)를 step 단위로 나누어 색상을 분류하며, 난이도가 높아질수록 step 수가 작아져 더 정밀하게 색상이 분할됩니다.


듀얼모드 주요 기능

호스트/클라이언트 연결

  • 사용자는 호스트(서버) 또는 클라이언트(접속자) 역할을 선택할 수 있습니다.
  • 호스트는 내부적으로 TcpListener를 열어 클라이언트 접속을 수락하며, 클라이언트는 IP 주소를 입력하여 호스트에 접속합니다.

연결 성공 시 자동 전환

  • 연결이 성공하면 dualModeColoring 폼으로 자동 전환되어 실시간 협업 색칠 화면으로 이동합니다.

UI 구성

  • 각 클라이언트는 동일한 이미지를 기준으로 작업하며,
    왼쪽에 자신의 도안, 오른쪽에 상대방의 도안이 표시됩니다.
  • 모든 색칠 작업은 실시간 동기화를 지원합니다.

색칠 동기화

  • 색칠 도중 발생한 모든 그리드 색칠 정보(PaintPacket)NetworkStream을 통해 패킷 전송 및 수신됩니다.
  • 왼쪽 도안에는 자신의 작업, 오른쪽 도안에는 상대방의 작업이 실시간으로 표시됩니다.

오류 처리 및 알림

  • 연결 실패, 서버 종료 등 네트워크 오류 발생 시 사용자에게 알림 메시지를 띄워 연결 상태 문제를 인식시킵니다.

About

픽셀아트 팀프로젝트

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 100.0%