본문으로 건너뛰기

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

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

이렇게 작동합니다

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

사용 방법

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

확대 방식별 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 %)

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

"검증됨"은 실제 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에서 인덱스 모드와 레이어·블렌드·잠금이 그대로 열립니다.

한계

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

자주 묻는 질문

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

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

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

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

JPEG 스크린숏에도 되나요?

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

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

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

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

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

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

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