이미지 보드IMAGE DISPLAY BOARD
CASTLE-ONE
01 / QUICK START

설치 없이, 먼저 실행해 보세요.

초기 점검 화면과 이미지 재생 화면을 하나의 HTML에 담았습니다.

1
패키지 압축을 해제합니다.

폴더 이름과 상대 경로를 유지해 아래 구조로 배치합니다.

이미지 보드/
├── index.html                  # 메인 화면
├── config.js                   # 기본 설정
├── assets/
│   ├── style.css               # 기본 화면 스타일
│   ├── theme.css               # 테마·설정 창·로고 스타일
│   ├── readme.css              # README 전용 스타일
│   └── script/
│       ├── theme.js            # 라이트·다크 모드
│       ├── navigation.js       # 화면 전환
│       ├── system.js           # 이미지 점검·재생
│       ├── svg.js              # 데모 SVG 방식·디자인
│       ├── svg-generator.js    # 데모 SVG 동적 생성
│       ├── image-editor.js     # 이미지 목록·최근 기록
│       └── settings.js         # 설정 저장·불러오기
├── image/                      # 사용할 이미지 보관
│   ├── code/                   # 이미지 준비 도구
│   │   ├── 00_Setup.py
│   │   └── 99_setup-py portable.py
│   └── svg/                    # 개별 SVG 사용 시 생성
│       ├── demo-01.svg           (useGeneratedSvg: 'true-save')
│       ├── …
│       └── demo-nn.svg
├── README.md                   # 간단 안내
└── README/
    └── index.html              # 사용 가이드

image/svg/와 그 안의 SVG 파일은 현재 패키지에 포함되어 있지 않습니다. 기본 동적 생성 모드에는 필요 없으며, 개별 파일 모드에서만 직접 준비합니다. image/code/의 Python 도구는 보드 실행에 필수는 아닙니다.

2
루트의 index.html을 엽니다.

기본은 라이트 테마·데모 모드입니다. 세로 12장과 가로 8장, 총 20장의 SVG를 동적으로 생성하므로 사진이나 Python 설치 없이 실행할 수 있습니다.

3
점검 완료 후 ‘시작하기’를 누릅니다.

등록 이미지·준비 완료·로딩 실패 수를 확인하세요. 일부 이미지가 실패해도 정상 이미지가 있으면 시작할 수 있습니다. 상단의 설정 버튼에서 이미지와 재생 설정을 바꾸고, 다크 모드 버튼으로 테마를 전환할 수 있습니다.

02 / YOUR PHOTOS

내 이미지로 바꾸기

화면의 설정 창을 이용하거나, 기본 설정 파일인 config.js를 직접 수정하거나, 저장한 설정 파일을 불러올 수 있습니다. HTML 안의 설정을 수정할 필요는 없습니다.

 방법 A · 화면에서 설정하기

  1. 초기 점검 화면의 설정 버튼을 누르고 demo 체크를 해제합니다.
  2. 이미지 설정에 image/photo01.webp 같은 경로나 image/001.webp ~ 100.webp 같은 범위를 입력하고 추가를 누릅니다. 또는 PC 이미지 선택으로 파일을 추가합니다.
  3. 목록에서 경로 수정·위아래 이동·삭제가 가능합니다. JSON을 직접 편집했다면 JSON 코드 적용버튼을 누르세요.
  4. 적용을 누르면 설정을 현재 브라우저에 저장하고 이미지를 다시 점검합니다. 점검 중에는 완료될 때까지 기다린 뒤 적용하세요.
PC에서 선택한 이미지는 데이터 형태로 설정에 포함되며, 기존에 추가한 PC 이미지를 합쳐 총 2MB까지 허용됩니다. 큰 파일은 image/에 넣고 경로로 추가하세요. 브라우저 저장 공간이나 권한에 따라 저장이 실패할 수도 있습니다.

이미지 최근 기록 보기에서는 적용한 비어 있지 않은 이미지 목록을 최대 10개까지 보관합니다. 기록 불러오기는 이미지 목록만 바꾸므로, 내용을 확인한 뒤 적용을 눌러 확정하세요. 목록의 편집 순서와 달리 실제 확대 재생 순서는 라운드마다 무작위로 정해집니다.

 방법 B · config.js 직접 수정하기

config.js의 window.APP_CONFIG에서 아래 두 항목을 수정하고 나머지 설정은 유지합니다.

// window.APP_CONFIG 객체 안의 demo와 images 항목
  "demo": false,
  "images": [
    "image/photo01.webp",
    "image/photo02.jpg",
    "image/001.webp ~ 100.webp",
    { "src": "image/101.webp ~ 120.webp", "alt": "행사 사진" }
  ],

경로는 루트 index.html 기준입니다. 파일명·대소문자·확장자를 맞춰 주세요. 범위는 시작과 끝을 모두 포함하며, 001처럼 앞자리 0이 있으면 자리수를 유지합니다. 양 끝은 같은 폴더와 확장자를 사용해야 합니다. 동일한 이미지 주소가 중복 등록되면 한 번만 사용합니다.

 방법 C · 설정 파일 불러오기

  1. 이전에 설정 내보내기 (json)로 저장한 설정 파일을 준비합니다.
  2. 초기 점검 화면에서 설정을 열고 설정 불러오기를 눌러 파일을 선택합니다. JSON 내용의 .json 또는 .txt 파일을 지원하며, 최대 크기는 4MB입니다.
  3. 불러온 설정을 확인합니다.
  4. 불러오기만으로는 적용되지 않습니다. 내용을 확인한 뒤 적용하기를 눌러 반영하세요.
config.js 자체를 불러오는 기능은 아닙니다. 경로로 등록된 사진은 설정 파일에 포함되지 않으므로, 다른 PC에서는 해당 이미지 파일도 같은 상대 경로에 준비해야 합니다. PC에서 선택한 이미지는 설정 파일에 데이터로 포함됩니다.
03 / SETTINGS

속도와 기본 설정

아래 기본값은 함께 제공된 config.js 기준입니다. 시간 단위는 ms이며 1,000ms가 1초입니다.

설정기본값설명
demotrue데모 사용 여부. 실제 이미지는 false로 변경
images[]이미지 경로·숫자 범위·src/alt 객체 배열
Demoserocount12세로 데모 생성 수. 0 이상의 정수
Demogarocount8가로 데모 생성 수. 0 이상의 정수
cycleMs8600전체 전환 주기 8.6초. 500~600,000
wallHoldMs3600확대 전 배경 탐색 이동 구간 3.6초. 100~60,000
wallMoveScreens0.55화면 배수 기준 이동 거리. 0.5~1
transitionMs600확대·축소 각각 0.6초. 0~60,000
visibleCount3세로·정사각형 이미지의 동시 확대 수. 정수 1~3
landscapeColumns5화면 너비가 높이 이상일 때 배경 열 수. 정수 1~12
portraitColumns3화면 높이가 너비보다 클 때 배경 열 수. 정수 1~12
gapPx32타일 간격 기준값(px). 0~150
backgroundDim0.75확대 중 배경을 어둡게 하는 정도. 0~1
fullscreentrue시작 시 전체화면 진입 시도. 브라우저 허용 필요
loadTimeoutMs15000이미지 한 장의 로딩 제한 15초. 1,000~120,000
loadConcurrency4동시에 점검할 이미지 수. 정수 1~12
배경 이동 3.6초 → 확대 0.6초 → 감상 3.8초 → 축소 0.6초

감상 시간 = cycleMs − wallHoldMs − (transitionMs × 2). 결과는 반드시 0보다 커야 합니다.

 설정 저장·내보내기·초기화

  • 설정 창의 적용은 현재 브라우저에 저장하며 config.js 파일에는 반영되지 않습니다. 같은 브라우저·같은 실행 위치에서 저장값을 사용합니다.
  • 브라우저 저장값은 저장 당시의 config.js 설정값과 현재 값이 같을 때 복원됩니다. config.js의 설정값을 바꾸면 이전 브라우저 저장값보다 새 파일 설정을 우선합니다.
  • 설정 내보내기 (json)는 현재 입력값을 config.json으로 다운로드합니다.
  • 설정 불러오기는 JSON 내용의 .json 또는 .txt 파일을 지원합니다.(최대 4MB) 내용을 확인한 뒤 적용하세요. config.js 파일을 직접 불러오는 기능은 아닙니다.
  • 초기화 (config.js)는 브라우저의 설정 저장값을 지우고 현재 페이지에서 읽은 config.js 원본을 다시 적용합니다. 테마와 이미지 최근 기록은 별도로 관리됩니다.

 이미지 방향별 배치와 중복 방지

한 번의 확대에는 같은 방향의 이미지만 모아 표시합니다. 세로·정사각형 이미지는 visibleCount를 기준으로, 가로 이미지는 화면과 사진 비율에 따라 2장 또는 4장 배치를 자동 선택합니다. 남은 이미지 수가 적으면 가능한 수만 표시합니다.

확대할 이미지는 라운드마다 무작위로 섞고, 모두 한 번씩 선택한 뒤 다음 라운드로 넘어갑니다. 한 확대 화면에는 같은 이미지가 중복되지 않습니다. 배경의 반복 타일은 이 계산에서 제외됩니다.

 데모 SVG 설정 · assets/script/svg.js

window.SVG_SETTINGS = {
  useGeneratedSvg: true,
  useNumberedDesign: false
};
  • useGeneratedSvg: true — SVG를 동적으로 생성합니다. 별도의 SVG 파일은 필요 없습니다.
  • useGeneratedSvg: 'true-save' — 생성한 SVG를 화면에서 사용하면서 파일 다운로드도 요청합니다. 기본 설정에서는 demo-01.svg부터 demo-20.svg까지입니다. 다운로드는 페이지당 한 번 요청하며, 브라우저의 여러 파일 다운로드 허용이 필요할 수 있습니다.
  • useGeneratedSvg: false — image/svg/의 개별 파일을 사용합니다. 다운로드한 파일은 이 폴더에 직접 옮겨야 합니다. 웹 페이지가 프로젝트 폴더에 자동 저장하지는 않습니다.
  • useNumberedDesign: true — 동적 생성 시 흰 배경·검은 숫자 디자인을 사용합니다. false는 추상 도형·우측 상단 번호 디자인입니다. 이미 저장된 개별 SVG의 디자인은 바뀌지 않습니다.

생성 개수는 config.js의 Demoserocount(세로)와 Demogarocount(가로)로 정합니다. 한 방향을 0으로 제외할 수 있지만, 동적 생성 데모의 합계는 1 이상이어야 합니다. 개별 파일 목록은 페이지를 열 때 config.js의 두 개수 합으로 만들어지므로, 파일 모드의 개수를 바꿀 때는 config.js를 수정한 뒤 새로고침하세요.

demo: false이면 images에 지정한 이미지만 사용하고, 데모 SVG 설정은 사용하지 않습니다.

 파일을 직접 열거나 로컬 웹 서버로 실행하기

설정과 데모 코드는 JavaScript 파일로 연결되어 있어 index.html을 더블클릭하는 file:// 환경에서도 실행할 수 있습니다. 브라우저별 파일 접근·저장 제약이 있다면 로컬 웹 서버를 사용하세요.

Python이 설치된 PC에서 프로젝트 루트 폴더를 열고 다음 명령을 실행한 뒤 http://localhost:8000/index.html에 접속합니다.

python -m http.server 8000

Python이 없다면 공식 다운로드 페이지에서 설치할 수 있습니다. 단순히 이미지 보드를 직접 여는 경우에는 설치할 필요가 없습니다.

04 / CONTROLS & HELP

재생 화면은 더 간결하게.

Space / 화면 터치 정지·재개 F 전체화면 전환 Esc 전체화면 종료
 이미지가 나오지 않아요.

초기 콘솔의 실패 파일명을 확인하세요. 경로·대소문자·확장자를 점검하고, URL 이미지라면 접근 권한과 링크 만료를 확인하세요. 이미지가 모두 실패하면 시작이 차단됩니다. 실제 사진을 사용하려면 demo 체크를 해제해야 합니다.

 설정을 바꿨는데 적용되지 않아요.

설정 창에서는 적용을 눌러야 반영됩니다. JSON 편집 후에는 먼저 목록에 반영하세요. config.js 또는 svg.js 파일을 직접 수정했다면 페이지를 새로고침하세요. 브라우저 저장값 대신 원본을 쓰려면 초기화 (config.js)를 누르세요.

 설정이나 PC 이미지가 저장되지 않아요.

저장 공간이 부족하거나 브라우저가 저장을 차단하면 현재 화면에는 적용되어도 다음 실행에 복원되지 않을 수 있습니다. 큰 이미지는 경로로 등록하고, 설정은 JSON으로 내보내 백업하세요. 불필요한 이미지 최근 기록을 삭제하면 공간 확보에 도움이 됩니다.

 개별 SVG 모드에서 파일을 찾지 못해요.

첨부 패키지에는 image/svg 폴더와 SVG 파일이 없습니다. 동적 생성 모드를 사용하거나, 'true-save'로 다운로드한 파일을 image/svg/에 직접 배치하세요. 기본 설정에서는 demo-01.svg~demo-20.svg가 필요합니다.

 다른 탭에 갔다 오면 멈춰 있어요.

화면이 가려질 때 자동 일시 정지합니다. 돌아온 뒤 화면을 누르거나 Space를 눌러 재개하세요.

 재생 중 오류가 생기면 어떻게 되나요?

오류 이미지는 제외하고 계속 진행합니다. 재생 가능한 이미지가 모두 없어지면 초기 점검 화면으로 돌아가 오류를 표시합니다.