본문으로 건너뛰기

확대된 도트 원래 크기로 줄이기 · 1배 복원

×4로 저장한 스프라이트, 스크린숏, 소수 배율로 크기를 바꾼 스토어 이미지는 한 픽셀이 여러 픽셀 덩어리가 되고 부드럽게 번지기도 합니다. 정리 패널은 그림만 보고 픽셀 크기를 재고, 찾은 격자와 확신 정도를 보여 준 뒤, 원본을 건드리지 않고 1배 스프라이트를 새로 만듭니다.

확대된 도트를 1배로 되돌리려면 먼저 도트 크기를 찾고, 블록마다 색 하나만 남기면 됩니다. 4배 최근접 확대인 128 × 128 이미지는 4 × 4 블록으로 되어 있어 32 × 32가 됩니다. 단순히 "25 %로 줄이기"는 배율이 이미 아는 정수이고 격자가 0번 픽셀에서 시작할 때만 맞습니다. 소수 배율(×3.3)이나 부드러운(쌍선형) 확대는 격자를 재야 합니다. Nerulio의 정리 패널은 격자를 재서 확신 정도와 함께 보여 주고, 브라우저 안에서 1배 스프라이트를 새 스프라이트로 만듭니다.

칠할 스프라이트·프레임·GIF·.aseprite 파일, 또는 정리할 확대된 그림을 끌어다 놓으세요
빈 Studio 열기
브라우저에서 처리하며 파일은 업로드되지 않습니다.
Studio 픽셀 작업 공간 정리 패널: 쌍선형으로 ×4.25 확대한 CC0 스프라이트를 부드러운 확대로 측정해 격자를 그리고, 적용 전에 64×48 결과를 미리 보는 화면
CC0 에셋(OpenGameArt)을 연 실제 Studio 화면입니다.
내보내기 대상
  • .aseprite검증됨· Aseprite 1.3.18
  • Palette files측정 확인· read back
  • Engine bundles검증됨· Godot 4.7.2 · Unity 6000.5
  • Frame PNG · .nerulio일반 파일

"25 %로 줄이기"로는 부족한 이유

정수 k배 최근접 확대는 도트 하나를 한 색의 k × k 블록으로 만들기 때문에 색이 바뀌는 위치가 모두 k의 배수에 놓입니다. k와 격자의 시작점을 알면 되돌리기는 정확합니다. 블록 안 어느 픽셀이든 그 블록의 색이기 때문입니다. Nerulio는 색이 바뀌는 위치로 k를 증명하고, 그림이 격자에서 몇 픽셀 어긋나게 잘렸다면 그 위치들이 공통으로 갖는 나머지로 오프셋을 구합니다.

소수 배율 최근접 확대는 폭이 다른 두 종류의 블록이 번갈아 나옵니다. ×2.5라면 연속 구간이 3, 2, 3, 2픽셀입니다. 40 %로 고정해 줄이면 일부 블록을 경계에서 읽어 1픽셀 선이 사라지거나 두 줄이 됩니다. Nerulio는 잰 가장자리마다 경계를 두고, 칸의 안쪽 절반(양쪽 바깥 4분의 1은 버림)에서 가장 많은 색을 고르며 평균을 내지 않습니다.

부드러운 확대(쌍선형·쌍삼차·Lanczos)에는 평평한 블록이 없고 모든 가장자리가 경사입니다. Nerulio는 그림을 원래 픽셀 중심 사이의 선형 보간으로 보고 최소제곱으로 그 중심값을 풀어낸 뒤 거의 같은 색을 합쳐서 가장자리를 다시 딱딱하게 만듭니다. 진짜 쌍선형 확대라면 역변환이고, JPEG나 흐림이 더해졌다면 원본 그대로가 아니라 가장 가까운 쌍선형 해석입니다.

도트 크기(배율)
도트 하나가 차지하는 이미지 픽셀 수. ×4 확대면 4, 폭 96px 스프라이트를 363px로 저장했다면 약 3.78.
오프셋(위상)
격자에서 어긋나게 잘린 이미지에서 첫 번째 온전한 블록이 시작하는 위치.
칸 샘플
칸마다 색 하나. 안쪽 절반에서 가장 많은 색, 두드러진 색이 없으면 Oklab 메도이드.

예시: 96 × 144 스프라이트를 두 가지 방법으로 확대

같은 CC0 시트(Eris의 Sumo Hulk, 9색)를 ×4 최근접과 ×3.78 쌍선형으로 키운 뒤 1배로 되돌렸습니다.

정답               96 × 144, 9색

×4 최근접          384 × 576      384/4 = 96    576/4 = 144
  Nerulio          96 × 144를 스스로 찾음, 픽셀 100 % 일치
  Aseprite 1.3.18  Sprite Size 25 %, 최근접: 96 × 144, 100 % 일치

×3.78 쌍선형       363 × 544      363/96 = 3.78   544/144 = 3.78
  Nerulio          96 × 144를 스스로 찾음, 99.7 % 일치, 13색
  Aseprite         정확한 크기(96 × 144) 입력, 최근접: 81.5 % 일치
  Aseprite         25 %로 짐작: 91 × 136, 54.4 % 일치

×4는 배율만 알면 어떤 도구로도 쉽습니다. 차이가 나는 것은 쌍선형 쪽입니다. 363 × 544의 25 %는 90.75 × 136으로, 크기도 맞지 않고 격자에도 놓이지 않습니다.

이렇게 작동합니다

  • 측정은 아무것도 바꾸지 않습니다. "×7 확대", "부드럽게 약 ×4.25 크기 변경" 같은 판정, 확실·가능성 높음·불확실로 표시한 픽셀 크기, 입력·결과 크기, 색 잡음, 감지한 배경을 알려 주고 캔버스에 격자를 그립니다.
  • 정확한 정수 블록은 격자에서 어긋나게 잘린 경우까지 찾습니다. 칸이 2px·3px로 번갈아 나오는 소수 배율 최근접 확대는 가장자리 간격으로 찾고, 부드러운 확대는 쌍선형 필터의 최소제곱 역변환으로 되돌립니다.
  • 각 칸은 가장 많은 색이나 Oklab 중간값 색 하나가 되며 가장자리를 평균하지 않고, 거의 같은 색은 Oklab에서 합쳐 외곽선이 또렷하게 남습니다.
  • 미리보기는 정수 배율로 전후를 보여 주고 나란히 비교할 수 있습니다. 적용하면 1배 스프라이트가 되돌리기 한 번짜리 새 스프라이트로 추가되고 프레임·시간·피벗·박스·태그가 유지됩니다.
  • 모든 계산은 메인 스레드 밖 워커에서 돌고, 같은 입력과 옵션은 항상 같은 바이트를 냅니다. 384×576 ×4 확대는 처음부터 끝까지 1.4초, 363×544 쌍선형 확대는 4.7초 걸렸습니다.

사용 방법

  1. 확대된 PNG를 이 페이지에 끌어다 놓으면 그림 한 장으로 픽셀 작업 공간에 열립니다.
  2. 정리 패널에서 범위(이 프레임, 태그, 모든 프레임)를 고르고 측정을 눌러 판정과 캔버스의 격자를 확인합니다.
  3. 단색 배경이 그림의 일부라면 배경을 유지로 바꿉니다. 그대로 두면 테두리 색이 투명해집니다.
  4. 미리보기로 전후를 비교하고 새 스프라이트로 적용을 누른 뒤 1배 결과를 내보냅니다.

결과 확인

  • 적용 전에 판정을 읽습니다. "×4 확대(정확한 블록 격자)"는 증명이고, "부드럽게 약 ×3.78 크기 변경"은 확신 정도가 붙은 측정이며, "너무 약해 믿을 수 없음"은 적용되지 않습니다.
  • 결과 크기를 확인합니다: 입력 ÷ 도트 크기(384 ÷ 4 = 96, 576 ÷ 4 = 144).
  • 미리보기에서 정수 배율로 전후를 비교합니다. 외곽선이 1픽셀 두께로 끊기지 않아야 합니다.
  • 색 수를 원래 그림의 색 수(위 스프라이트는 9)와 비교합니다. 훨씬 많으면 잡음이 남은 것이니 색 제한을 거세요.

확대 방식별 1배 결과의 정확도

원래 그림과 비교한 정확한 픽셀: 기본값 / 배경 유지. CC0 사례 69개, docs/STUDIO-PIXEL.md §5.

확대 방식크기를 정확히 찾음정확한 픽셀
최근접, 정수 배율(×2~×8)100 %92.2 % / 97.4 %
최근접, 소수 배율(×2.5·×3.3·×4.7)100 %88.6 % / 97.0 %
부드러운 확대(쌍선형·쌍삼차·Lanczos)93 %70.5 % / 75.9 %
확대 뒤 흐림67 %53.8 % / 66.4 %
확대 뒤 JPEG80 %4.5 % / 12.1 %(ΔE 0.02 이내 84.0 %)

문제 해결

증상유력한 원인확인 방법해결
결과가 예상의 절반이나 두 배 크기격자가 실제 블록의 배수나 절반에 맞춰짐(긴 단색 구간이 많은 그림)캔버스에 격자를 표시해 칸마다 도트가 정확히 하나인지 보기정리 패널에 도트 크기(예: 4)를 입력하고 다시 측정
1픽셀 선이 사라지거나 두 줄이 됨퍼센트로 고정한 축소가 블록 경계를 읽음(소수 배율이나 어긋난 자르기)선 위에 격자를 겹쳐 보기퍼센트 대신 잰 격자를 쓰기. 잘린 이미지의 오프셋은 자동으로 찾음
전체 색이 조금씩 틀림JPEG 입력이나 부드러운 확대라 비트까지 같은 픽셀이 없음보고서의 색 수가 원래 그림보다 훨씬 많음배경 유지, 색 제한, 또는 스프라이트 팔레트로 양자화(팔레트 편집기)
그림의 일부인 배경이 투명해짐배경 "투명하게"(기본값)가 감지한 테두리 색을 지움보고서에 그 색과 테두리 비율이 나옴적용 전에 배경을 유지로
"약 … px 격자를 찾았지만 너무 약해 믿을 수 없음"일관된 격자가 없음. 생성 이미지에서 흔함(AI 도트 보정)캔버스의 주황 점선 격자눈에 보이는 크기를 입력하거나 중요한 부분을 다시 그리기

다른 방법

방법이럴 때 더 낫습니다
Aseprite: Sprite › Sprite Size, 25 %, 최근접배율을 아는 깨끗한 정수 확대. 우리 시험에서 세 단계로 100 % 일치했습니다. 격자 감지가 없어 소수·부드러운 확대는 정확한 크기를 직접 입력해야 합니다(우리 시험에서 81.5 %).
픽셀 퍼펙트 검사기(픽셀 랩)이미지가 정확한 정수 확대인지만 알고 픽셀 단위로 되살리면 될 때. 블록 격자가 증명될 때만 복원을 제공합니다.
일반 이미지 크기 조절도트가 아닌 그림(사진, 회화)이라 부드러운 리샘플링이 원하는 결과일 때.

엔진별 내보내기와 검증 방법

"검증됨"은 실제 CC0 에셋으로 내보낸 파일을 해당 엔진·도구가 직접 불러와 원본과 비교했다는 뜻입니다. 불러오지 않은 형식은 그렇게 표시합니다.

대상파일검증
.asepritelayers · blend · opacity · locked · indexed palette · frames · tags검증됨 Aseprite 1.3.18실제 Aseprite 명령줄이 파일을 인덱스 모드, 레이어 2개, 불투명도 160의 곱하기, 편집 불가로 잠긴 레이어 그대로 다시 열었고 프레임 픽셀이 같았습니다.
Palette files.gpl · .pal · .hex · .ase · .act · .json측정 확인 read back형식마다 쓰고 다시 읽어 같음을 확인했고, Aseprite가 만든 .gpl·.pal·.hex·.act와 실제 Adobe .ase(16색)를 읽었습니다.
Engine bundlesGodot 4 · Unity 6 · Phaser 3/4 · PixiJS 8 … through Pack & Export검증됨 Godot 4.7.2 · Unity 6000.5그린 스프라이트는 패킹·내보내기에서 묶습니다. 그 엔진 파일은 실제 CC0 에셋으로 각 엔진에서 불러와 확인했습니다(49회 중 47회 통과, 실패 2회는 Phaser 3 프리셋이 피하는 Phaser 3.90 버그).
Frame PNG · .nerulioPNG-8 with the palette when an indexed frame fits it · project file일반 파일어떤 도구에서도 쓰는 일반 파일이며, 엔진 실행 검증은 주장하지 않습니다.

검증 근거

정리 벤치마크(원래 1배 그림을 아는 CC0 사례 69개): 크기를 정확히 찾은 비율 81 %(±1px 90 %), 배경 유지 시 픽셀 74.0 % 정확. 가장 나은 경쟁 도구는 크기 30 %(perfectPixel), 정확한 픽셀 44.6 %(unfake.js). Aseprite로 만든 ×4 최근접 확대는 100 %, ×3.78 쌍선형 확대는 99.7 % 정확하게 돌아왔고 두 경우 모두 크기를 자동으로 찾았습니다. 1px 외곽선과 드롭 섀도는 Aseprite 결과와 픽셀까지 같았습니다(1846px, 705px). 여기서 쓴 .aseprite는 Aseprite 1.3.18에서 인덱스 모드와 레이어·블렌드·잠금이 그대로 열립니다.

한계

  • 정리 한 번에 도트 크기는 하나입니다. 서로 다른 배율로 확대된 프레임은 따로 정리하세요.
  • 격자는 가로·세로 방향으로 잽니다. 회전하거나 원근으로 비틀린 스크린숏에는 찾을 격자가 없습니다.
  • 흐림이 더해진 확대가 벤치마크에서 가장 약한 경우로, 크기를 맞힌 비율이 67 %였습니다.
  • 픽셀 작업 공간에 없는 것(Aseprite에는 있음): 레이어 그룹, 링크된 셀, 타일맵 레이어, 참조 레이어, RotSprite와 선택 영역 자유 회전·크기 조절(뒤집기와 90°만), 그라디언트·스프레이·윤곽·텍스트 도구, 사용자 브러시(사각·원 1~16px), 타일 반복 그리기, Lua 스크립트와 명령줄.
  • 대칭 축은 숫자로 입력하며 캔버스에서 끌 수 없습니다. 터치에서는 오른쪽 버튼이 없어 배경색은 전환 버튼이나 X로 씁니다.
  • 정리: JPEG는 가깝게 돌아오지만(배경 유지 시 84 %가 ΔE 0.02 이내) 정확히 같은 경우는 드뭅니다(12 %). 모의 생성 그림은 크기를 정확히 맞힌 비율이 20 %(±1px 80 %)이고, 실제 생성 그림 7장은 하나도 자동으로 맞추지 않았습니다. 패널이 제안한 픽셀 크기를 직접 입력해야 합니다.
  • 인덱스 변환은 Aseprite의 RGB 거리가 아니라 Oklab에서 가장 가까운 색을 고릅니다. 시험 스프라이트의 68 % 픽셀이 다른(눈으로 더 가까운) 색이 됐습니다. Lospec 검색이 유일한 네트워크 요청이며 먼저 묻습니다.

버전과 출처

수치는 Nerulio 정리 벤치마크(1배 원본을 아는 CC0 사례 69개. 정확한 크기 81 %, 1px 이내 90 %)와 Sumo Hulk 시트 맞비교에서 나왔으며, Aseprite 1.3.18은 명령줄로 실행했습니다(docs/STUDIO-PIXEL.md §5–§6). Aseprite 메뉴 경로는 공식 문서를 따랐습니다.

참고한 공식 문서

자주 묻는 질문

잰 픽셀 크기가 틀리면 어떻게 하나요?

판정에는 확신 정도가 붙고, 약한 격자는 확실한 것으로 적용하지 않고 주황 점선으로 그립니다. 정리 패널에 픽셀 크기를 직접 입력하세요. 적용을 누르기 전에는 아무것도 바뀌지 않고, 적용은 새 스프라이트를 만듭니다.

결과가 예상보다 1픽셀 작거나 큰 이유는?

그림이 격자에서 몇 픽셀 어긋나게 잘려 있으면 테두리 칸이 온전하지 않습니다. 벤치마크에서 크기를 정확히 찾은 비율은 81 %, 1px 이내는 90 %였습니다.

JPEG 스크린숏에도 되나요?

일부만 됩니다. JPEG 잡음 때문에 색이 비트까지 같게 돌아오는 경우는 드물지만(배경 유지 시 12 %), 84 %는 원래 색과 ΔE 0.02 이내로 1배에서는 구별되지 않습니다. PNG가 있으면 PNG를 쓰세요.

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

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

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

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

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

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