본문으로 건너뛰기

픽셀 퍼펙트 검사 · 배율·흐림·격자 어긋남 감지

이 스프라이트는 정말 3배 최근접일까요, 2.5배 이중선형일까요? 검사기는 색이 바뀌는 열과 행을 찾아 그것으로 블록 크기를 증명합니다. 표본 추출도 추측도 없습니다.

픽셀 퍼펙트 검사기는 도트 이미지가 어떤 상태인지 알려 줍니다. 이미 1배인지, 정확한 정수 확대(배율과 격자 오프셋 포함)인지, 소수·부드러운 크기 변경인지, 흐려졌는지입니다. Nerulio 검사기는 색이 바뀌는 행과 열을 찾습니다. 그 위치가 모두(하나의 공통 오프셋을 빼면) 3의 배수에 있으면 이미지는 정확히 3배이고 1배 원본을 픽셀 단위로 되살릴 수 있습니다. 그 밖의 경우는 필요하면 "확신 없음"을 붙인 측정값으로 보고하며, 정확한 것처럼 고치지 않습니다.

스프라이트 프레임(PNG)을 끌어다 놓으세요. 여러 프레임이 하나의 팔레트를 씁니다
픽셀 랩 열기
브라우저에서 처리하며 파일은 업로드되지 않습니다.
픽셀 랩: 추출한 팔레트 하나에 고정된 CC0 스프라이트 프레임과 색별 픽셀 비율
CC0 에셋(OpenGameArt)을 연 실제 픽셀 랩 화면입니다.
출력
  • PNG frames측정 확인· Pillow
  • Palette측정 확인· re-import
  • pixel-lab.json미검증

표본 추출도 추측도 없이 판단하는 방법

정수 감지는 산수입니다. 깨끗한 k배 확대에서는 색이 블록 경계에서만 바뀌므로, 색이 바뀌는 열 번호를 k로 나눈 나머지가 모두 같고 행도 마찬가지입니다. 검사기는 그 위치를 한 번에 기록하고 k를 16부터 2까지 시도합니다. 두 축 모두 맞는 가장 큰 k가 배율이고, 0에서 시작하는 격자를 우선하며, 0이 아닌 공통 나머지는 어긋나게 잘린 이미지의 오프셋입니다.

정수 격자가 없으면 같은 색이 이어지는 구간 길이로 추정합니다. 2.5배 최근접 확대는 3픽셀과 2픽셀 구간이 번갈아 나오므로 가장 짧은 구간들(최솟값의 1.5배 이내)의 평균이 2.500배가 됩니다. 모든 구간을 평균하면 과대평가됩니다. 단색 테두리는 여러 블록이 이어진 긴 구간 하나이기 때문이며, 같은 시험 스프라이트에서 2.885배가 나왔습니다.

흐림은 중간색으로 드러납니다. 반대편 두 이웃 사이의 색을 Oklab에서 정확히 사이에 둔 가장자리 픽셀입니다. 최근접으로 키운 그림에는 없고, 시험 스프라이트의 쌍선형 2.5배 버전에는 1243개(가장자리의 86.3 %)와 반투명 픽셀 700개가 있었습니다. 블록 안에 잡음 픽셀 하나만 있어도 정확한 증명이 깨지므로 JPEG 이미지는 정확한 정수 확대로 보고되지 않습니다.

배율
도트 하나당 화면 픽셀 수. 증명된 블록 격자면 정확값, 아니면 추정값.
오프셋
격자 왼쪽·위에서 잘려 나간 픽셀 수. 2px·3px 잘린 4배 스프라이트는 오프셋 2, 3.
중간색 픽셀
이웃 사이의 색을 가진 가장자리 픽셀. 부드럽게 보간된 흔적.
확신 없음
한 색뿐이거나 한 축으로만 바뀌는 이미지에는 잴 격자가 없음.

예시: 16 × 16 스프라이트의 네 가지 버전

16 × 16 시험 스프라이트를 여러 방법으로 처리한 뒤의 보고서:

입력                               보고서
64 × 64   4배 최근접               배율 4 (정확), 오프셋 0, 0, 논리 크기 16 × 16
62 × 61   같은 것, 2·3px 잘림       배율 4 (정확), 오프셋 2, 3, 격자 어긋남
40 × 40   2.5배 최근접             정수 격자 없음, 추정 2.500배 (구간 3, 2, 3, 2 …)
40 × 40   2.5배 쌍선형             정수 아님, 중간색 가장자리 픽셀 1243개 (86.3 %)

잘린 이미지의 1배 복원: ceil((62 + 2) / 4) × ceil((61 + 3) / 4) = 16 × 16

2.5배 버전에는 정확한 1배가 들어 있지 않습니다. 블록 폭이 2와 3으로 번갈아 나오므로 검사기는 복원을 제공하지 않고 정리 기능을 안내합니다.

이렇게 작동합니다

  • 색이 바뀌는 위치로 정확한 정수 배율과 오프셋을 찾습니다(격자가 어긋난 자르기도 찾음).
  • 가장 짧은 연속 구간만으로 비정수 배율을 추정합니다(2.5배 최근접 확대는 2.500배로 읽음).
  • 흐림 감지: 두 이웃 사이 색을 가진 가장자리 픽셀과 반투명 픽셀을 셉니다.
  • 정확한 격자가 증명될 때만 1배 원본 복원, 1×~8× 정수 확대, 색 예산·실루엣 점검.

사용 방법

  1. 이미지를 끌어다 놓습니다.
  2. 보고서에서 배율·오프셋·흐린 가장자리를 읽습니다.
  3. 정확한 격자가 있으면 1배 원본을 복원하고, 아니면 정수 배율로 확대합니다.
  4. 내보냅니다.

결과 확인

  • 정확한 결과라면 논리 크기는 축마다 ceil((너비 + 오프셋) ÷ 배율)입니다.
  • 되살린 스프라이트를 같은 배율로 키우면, 잘리지 않은 입력과 픽셀 단위로 같습니다.
  • 단색이나 줄무늬 이미지에서 "확신 없음"은 올바른 결과입니다. 잴 것이 없습니다.

문제 해결

증상유력한 원인확인 방법해결
분명히 확대된 이미지인데 1배로 나옴부드러운 보간이나 JPEG가 평평한 블록을 없애 정수 격자가 없음흐림 수치에 중간색 가장자리 픽셀이 많음부드러운·소수 배율 크기 변경을 재는 정리 패널(1배 복원) 사용
4배라고 생각한 그림이 2배로 나옴색 변화 일부가 4픽셀 경계 사이에 있음: 확대 후에 수정했거나 2픽셀 디테일이 있음4픽셀 격자를 깨는 가장자리를 확대2배로 받아들이거나, 나중에 한 수정을 먼저 지우기
2.500배 같은 추정만 있고 복원 버튼이 없음소수 배율이라 블록 폭이 두 가지여서 정확한 1배가 없음보고서에 "정수 격자 없음"측정한 가장자리에서 자르는 정리 패널로 1배를 다시 만들기
"확신 없음"한 색뿐이거나 한 축으로만 바뀜이미지를 보면 단색이나 줄무늬고칠 것 없음. 디테일이 있는 프레임을 검사

다른 방법

방법이럴 때 더 낫습니다
픽셀 작업 공간의 정리 패널소수 배율 크기 변경, 부드러운 보간, JPEG 압축, 생성 이미지일 때. 그런 격자를 재서 1배를 새 스프라이트로 다시 만듭니다.
아무 도트 편집기의 격자 표시깨끗한 이미지 한 장일 때. 보이는 블록 크기로 격자를 맞추고 모든 가장자리가 그 위에 오는지 확인합니다.

출력 파일과 검증 방법

"측정 확인"은 내려받은 파일을 페이지 밖에서(Pillow·numpy·별도 파서) 다시 열어 그 속성을 측정했다는 뜻입니다. 게임 엔진에서 불러오는 것은 시험하지 않았습니다.

대상파일검증
PNG framesanim_N.png · 1×–8× nearest측정 확인 Pillow내보낸 PNG를 다시 읽어 모든 색이 고정 팔레트 안에 있는지 확인했습니다.
Palette.gpl · .hex (Lospec) · .json측정 확인 re-import각 형식을 내보내고 UI로 다시 가져와 16 → 16색을 확인했습니다.
pixel-lab.jsongeneric frames + palette미검증일반 JSON이며 어떤 엔진에서도 불러오지 않았습니다.

검증 근거

안티앨리어싱된 프레임 8개 → 16색 팔레트 하나, 팔레트 밖 색 0개. 디더링 없음과 Bayer 4×4 모두에서 변하지 않은 영역이 8프레임 모두 동일. 안티앨리어싱 제거로 271색 → 16색, 실루엣 픽셀 이동 0. 정수 배율·오프셋·2.5배 비정수 배율을 정확히 감지.

한계

  • 정수 배율은 16배까지(그리고 이미지의 짧은 변 이하까지) 감지합니다.
  • 정확한 증명에는 정확한 색이 필요합니다. 블록 안에 잡음 픽셀이 하나만 있어도 정수 확대가 아니라고 보고합니다.
  • 4096 × 4096보다 큰 프레임은 거부합니다. 모든 처리가 메인 스레드에서 돌고 아직 취소 버튼이 없습니다.
  • 스프라이트 시트는 이미지 하나로 다룹니다. 먼저 프레임으로 자르세요(스프라이트 시트 자르기).
  • 디더링을 켜면 정리 개수에 디더 픽셀이 포함됩니다. 먼저 디더링을 없음으로 두세요.
  • 내보내는 JSON은 일반 형식이며 Godot·Unity 가져오기는 시험하지 않았습니다.

버전과 출처

픽셀 랩 시험(Chromium)에서 확인: 1×·2×·3×·4×·8× 최근접을 정확히 감지, 2px·3px 잘린 4배 스프라이트는 오프셋 2, 3, 2.5배 최근접은 2.500배, 3배 스프라이트는 16 × 16으로 픽셀까지 같게 복원.

자주 묻는 질문

"확신 없음"이라고 나오는 이유는?

한 색뿐인 이미지나 한 축으로만 바뀌는 이미지는 잴 격자가 없습니다. 추측하지 않고 그렇게 알려 줍니다.

흐리게(이중선형) 확대된 그림을 고칠 수 있나요?

측정은 합니다. 시험 스프라이트에서 가장자리 픽셀 1243개(86.3%)가 중간 색이었습니다. 하지만 정확한 복원은 깨끗한 블록 격자가 있을 때만 제공합니다.

무료인가요? 계정이 필요한가요?

이 페이지의 기능은 모두 무료이며 계정 없이 쓸 수 있습니다. 워터마크나 막혀 있는 내보내기가 없습니다.

스프라이트가 업로드되나요?

아니요. Studio는 이 브라우저 탭 안에서 디코딩·패킹·내보내기를 합니다. 프로젝트는 브라우저(IndexedDB)에 자동 저장되며 .nerulio 파일로 저장할 수 있습니다.

Aseprite나 엔진 플러그인을 설치해야 하나요?

아니요. .aseprite 파일은 브라우저에서 읽고 씁니다. 엔진별 번들에는 그 엔진에 필요한 것이 들어 있습니다(Godot는 가져오기 설정과 씬, Unity와 Godot 타일셋은 작은 편집기 스크립트).