Seamless Pattern Maker:타일과 반복 패턴
타일 이미지를 업로드하고 스케일·회전·간격·4가지 모드로 심리스 패턴을 미리보기. PNG 내보내기 지원.
Seamless Pattern Maker란?
Seamless Pattern Maker는 하나의 타일 이미지를 가져와 설정 가능한 캔버스에 렌더링하여 심리스 타일링 패턴을 미리보고 내보내는 도구입니다. 스케일, 회전, 간격을 조정하고 4가지 타일링 모드(일반 그리드, 하프 브릭 오프셋, 대각선, 미러) 중에서 선택하여 타일이 반복될 때 어떻게 보이는지 정확하게 확인할 수 있습니다. 확인 후에는 결과를 대형 PNG 이미지로 내보내거나 바로 붙여넣을 수 있는 CSS background-image 스니펫을 복사할 수 있습니다. 모든 처리는 서버에 파일을 업로드하지 않고 브라우저 내에서 로컬로 이루어집니다.
주요 기능
- 드래그 앤 드롭 또는 클릭으로 타일 이미지 업로드: 업로드 영역은 드래그 앤 드롭과 클릭으로 파일 탐색을 모두 지원합니다. 10 MB를 초과하는 파일은 오류 메시지와 함께 거부됩니다. 불러온 타일의 크기는 미리보기 썸네일 아래에 표시됩니다.
- 라이브 심리스 타일링 미리보기: 설정을 조정할 때마다 캔버스가 즉시 다시 그려집니다. 미리보기 영역 전체를 채우기에 충분한 타일이 렌더링되며, 회전 오버플로를 처리하기 위한 여분의 타일도 포함됩니다.
- 타일 스케일 조정 (5%~400%): 5% 간격의 범위 슬라이더로 원본 픽셀 크기에 상대적으로 타일을 확대하거나 축소합니다. 100%에서 타일이 원래 크기로 렌더링됩니다.
- 회전 제어 (0~360도): 그리기 전에 각 타일을 중심점을 기준으로 회전시킵니다. 모든 타일링 모드와 함께 작동합니다.
- 타일 간 간격: -50~50px 슬라이더로 간격을 조절합니다. 양수 값은 타일 사이에 배경 색으로 채워진 공간을 추가하고, 음수 값은 타일을 겹쳐 레이어 효과를 만듭니다.
- 4가지 타일링 모드: 일반 — 오프셋 없는 표준 그리드. 하프 브릭 — 홀수 행이 타일 너비의 절반만큼 오프셋되어 벽돌 쌓기와 같은 패턴을 만듭니다. 하프 드롭 — 홀수 열이 타일 높이의 절반만큼 아래로 오프셋되어 세로 방향의 엇갈림 패턴을 만듭니다. 미러 — 교번 열이 수평 반전되고 교번 행이 수직 반전되어 만화경 같은 대칭을 만듭니다.
- 캔버스 크기 설정: 너비와 높이 필드는 100~4096픽셀을 허용합니다. 미리보기 캔버스와 내보낸 PNG 모두 이 정확한 크기를 사용합니다.
- PNG로 내보내기: 렌더링된 캔버스를
pattern-[너비]x[높이].png로 다운로드합니다. - CSS 배경 스니펫 복사: 단일 타일 캔버스를 생성하고
background-image,background-repeat,background-size3가지 CSS 속성을 클립보드에 복사합니다.
Seamless Pattern Maker 사용 방법
1단계: 타일 이미지 업로드하기
이미지 파일을 업로드 영역에 드래그하거나 클릭하여 파일을 탐색합니다. 브라우저가 기본적으로 지원하는 이미지 형식이라면 모두 사용 가능합니다. 타일 이미지의 크기가 썸네일 아래에 표시됩니다(예: "64 x 64px"). 10 MB를 초과하는 파일을 업로드하면 도구가 "파일이 너무 큽니다" 오류를 표시하고 거부합니다. 업로드에 성공하면 미리보기 캔버스가 즉시 기본 설정으로 타일링 패턴을 렌더링합니다.
좋은 타일 이미지는 눈에 띄는 이음새 없이 자연스럽게 반복되는 것들입니다. 심리스 타일링이 가능한 텍스처, 아이콘 패턴, 기하학적 모양, 또는 타일링을 위해 의도적으로 디자인한 이미지가 적합합니다. 쉐브론, 도트, 직물 패턴과 같은 규칙적인 패턴이 특히 잘 어울립니다.
2단계: 타일링 모드 선택하기
컨트롤 섹션에 4개의 모드 버튼이 나타납니다:
- 일반: 표준 그리드, 모든 타일이 행과 열로 정렬됩니다.
- 하프 브릭: 홀수 번째 행이 타일 스텝의 절반만큼 오른쪽으로 이동합니다. 표준 벽돌 쌓기 패턴과 동일합니다.
- 하프 드롭: 홀수 번째 열이 타일 스텝의 절반만큼 아래로 이동하여 벽지나 직물 패턴에서 자주 볼 수 있는 세로 방향의 엇갈림 효과를 만듭니다.
- 미러: 교번 열에 수평 반전(
ctx.scale(-1, 1))이, 교번 행에 수직 반전(ctx.scale(1, -1))이 적용되어 타일 경계를 가로지르는 대칭 반사가 생성됩니다.
각 모드를 클릭하면 캔버스에서 효과를 즉시 확인할 수 있습니다.
3단계: 스케일, 회전, 간격 조정하기
3개의 슬라이더로 타일링을 세밀하게 조정합니다:
- 스케일 (5%~400%): 100%에서 타일이 원래 픽셀 크기로 렌더링됩니다. 200%로 높이면 타일이 크게 보이고 패턴이 더 잘 보입니다. 50%로 줄이면 촘촘한 마이크로 패턴이 됩니다.
- 회전 (0°~360°): 타일을 회전시켜 대각선 줄무늬 효과를 만들거나 패턴에 역동성을 더할 수 있습니다. 줄무늬 타일을 45° 회전하면 대각선 줄무늬 패턴이 생깁니다.
- 간격 (-50~50px): 양수 값은 배경 색으로 채워진 타일 간 공간을 추가합니다. 음수 값은 인접 타일을 겹쳐 레이어 효과를 만듭니다.
4단계: 캔버스 크기와 배경 색 설정하기
두 개의 숫자 입력 필드에 출력 캔버스의 너비와 높이(각각 100~4096px)를 입력합니다. 라이브 미리보기는 화면에 맞게 조정되지만 실제 캔버스는 지정된 크기로 렌더링됩니다. CSS 배경 테스트에는 800×600으로 충분합니다. 인쇄용 내보내기에는 2400×2400 이상을 사용하세요.
배경 색 스워치를 클릭하여 타일 사이와 주변을 채울 색을 선택합니다.
5단계: PNG로 내보내거나 CSS 복사하기
PNG 버튼을 클릭하면 렌더링된 캔버스가 pattern-[너비]x[높이].png로 다운로드됩니다. 디자인 소프트웨어, 게임 엔진의 텍스처로 사용하거나 <img> 요소로 활용할 수 있습니다.
CSS 를 클릭하면 바로 사용할 수 있는 CSS 스니펫이 클립보드에 복사됩니다. 스니펫은 단일 타일을 별도의 캔버스에 렌더링하고 Base64 데이터 URI로 인코딩합니다. 복사되는 3가지 속성:
background-image: url("data:image/png;base64,...");
background-repeat: repeat;
background-size: 72px 72px;
background-size 값은 스케일이 적용된 타일 너비에 간격을 더한 값과 스케일이 적용된 타일 높이에 간격을 더한 값입니다. 스타일시트에 직접 붙여넣으세요.
실용 예시
웹사이트용 벽돌 배경 패턴
128×64 벽돌 텍스처 타일을 업로드합니다. "하프 브릭" 모드를 선택하고, 스케일 100%, 간격 2px, 배경 색 #2c1810(어두운 모르타르 갈색)으로 설정합니다. 캔버스를 800×600으로 설정하면 사실적인 벽돌 패턴 미리보기가 표시됩니다. CSS 스니펫을 복사하여 .hero-section CSS 규칙에 붙여넣습니다.
배너용 하프 드롭 줄무늬 패턴
40×40 줄무늬 타일(투명 배경에 단색 대각선 줄무늬를 PNG로 저장)을 업로드합니다. "하프 드롭" 모드를 선택하고, 스케일 150%, 회전 45°, 간격 0px. 줄무늬와 하프 드롭 오프셋이 결합되어 촘촘하고 엇갈린 줄무늬 패턴이 생성됩니다. 배너 배경으로 1200×400 PNG로 내보냅니다.
프린트 디자인용 만화경 타일
한 사분면에 색상 패턴이 있는 100×100 기하학 타일을 업로드합니다. "미러" 모드를 선택하고, 스케일 100%, 회전 0°, 간격 0px. 미러 모드는 2×2 반복 단위로 타일을 수평·수직 반전시켜 캔버스 전체에 4중 대칭 모티프를 만들어냅니다. 고해상도 인쇄용으로 2400×2400으로 내보냅니다.
카드 컴포넌트용 CSS 배경 패턴
소형 도트 텍스처 타일(32×32 PNG)을 업로드합니다. "일반" 모드, 스케일 75%, 간격 6px, 배경 #f8f8f8, 캔버스 400×400. CSS 스니펫을 복사하여 스타일시트에 붙여넣습니다:
.card-background {
background-image: url("data:image/png;base64,...");
background-repeat: repeat;
background-size: 30px 30px;
}
카드 크기에 관계없이 도트가 카드 전체에 심리스하게 반복됩니다.
팁과 모범 사례
심리스하게 설계된 타일을 사용하세요. 도구는 제공된 타일을 그대로 렌더링합니다. 타일 경계에서 내용이 맞지 않으면 이음새가 보입니다. 이미 심리스하게 타일링 가능한 소재를 준비하거나 직접 제작하세요.
미러 모드는 눈에 띄는 반복을 줄여줍니다. 심리스하지 않은 타일도 미러 모드에서는 반사가 이음새를 가려주어 괜찮아 보이는 경우가 많습니다. 심리스하게 설계되지 않은 타일이라면 먼저 미러 모드를 시도해보세요.
회전은 캔버스 여백 타일을 추가합니다. 도구는 2 × Math.max(타일너비, 타일높이)에 해당하는 여백을 계산하고 회전으로 발생하는 빈 공간을 채우기 위해 캔버스 경계 너머에도 타일을 렌더링합니다.
CSS 스니펫은 단일 타일 데이터 URL을 사용합니다. CSS 내보내기는 스니펫을 위한 (타일너비 + 간격) × (타일높이 + 간격) 크기의 캔버스를 새로 생성합니다. 이렇게 하면 데이터 URL을 작게 유지하면서 브라우저가 background-repeat: repeat으로 무한 타일링을 네이티브하게 처리할 수 있습니다.
설정은 URL을 통해 공유 가능합니다. 도구는 useShareableState를 사용하여 현재 설정을 URL에 인코딩합니다. URL을 공유하면 정확히 같은 설정을 재현할 수 있습니다.
간격 조절은 -50~50px입니다. 줄눈(그라우팅) 효과를 위해 대비되는 배경 색과 함께 3~8px의 양수 간격이 현실적입니다.
일반적인 문제 및 해결 방법
"파일이 너무 큽니다" 오류: 도구는 10 MB를 초과하는 파일을 거부합니다. 업로드 전에 타일 이미지를 10 MB 미만으로 압축하세요.
"잘못된 형식" 오류: 도구는 유효한 이미지 파일(file.type.startsWith('image/'))이 필요합니다. 이미지가 아닌 파일은 거부됩니다.
패턴에 이음새가 보임: 타일 경계가 맞지 않습니다. 심리스한 결과를 위해 눈에 띄는 경계 없이 타일링되도록 특별히 설계된 이미지를 사용하세요.
업로드 후 캔버스가 비어 있음: 라이브 미리보기는 타일 이미지가 로드된 경우에만 렌더링됩니다. 업로드는 성공했지만(썸네일이 표시됨) 캔버스가 비어 있다면, 초기화하고 다시 업로드해보세요.
내보내기 시 "이미지가 로드되지 않음" 토스트: 이미지 없이 PNG 또는 CSS를 클릭한 경우입니다. 먼저 타일 이미지를 업로드하세요.
CSS 스니펫의 데이터 URL이 너무 큼: 단일 타일 캔버스 크기는 스케일 설정에 비례합니다. 대형 타일에 스케일 400%를 적용하면 CSS 데이터 URI가 상당히 커질 수 있습니다. 프로덕션 CSS에는 타일을 별도의 이미지 파일로 저장하고 일반 URL로 참조하는 것이 좋습니다.
개인정보 보호 및 보안
Seamless Pattern Maker는 모든 이미지를 브라우저 내에서 완전히 처리합니다. 타일 이미지는 FileReader API를 통해 로드되어 메모리 내 데이터로 저장됩니다. 모든 캔버스 작업(그리기, 스케일, 회전, 미러링)은 서버 통신 없이 브라우저의 Canvas 2D API를 사용합니다. CSS 내보내기는 로컬 클립보드에만 데이터를 복사합니다. 페이지를 한 번 로드한 후에는 오프라인에서도 작동합니다.
자주 묻는 질문
Seamless Pattern Maker는 무료인가요? 네, 완전히 무료입니다. 4가지 타일링 모드, 모든 컨트롤, PNG 내보내기, CSS 복사가 비용 없이 계정 없이 이용 가능합니다.
Seamless Pattern Maker는 오프라인에서 작동하나요? 네. 초기 페이지 로드 후 모든 렌더링은 브라우저의 Canvas 2D API를 사용합니다. 패턴 생성 또는 내보내기 중에 네트워크 요청이 발생하지 않습니다.
Seamless Pattern Maker에서 내 데이터는 안전한가요? 타일 이미지는 절대 기기 밖으로 나가지 않습니다. FileReader API가 로컬 브라우저 메모리에 불러오며, 모든 처리와 내보내기가 클라이언트 측에서 이루어집니다.
타일로 사용할 수 있는 이미지 형식은? 브라우저가 기본 지원하는 이미지 형식이라면 모두 사용 가능합니다: JPEG, PNG, WebP, GIF, SVG(이미지 요소로), 최신 브라우저에서는 AVIF와 HEIC도 지원됩니다. 애니메이션 GIF는 첫 번째 프레임만 사용됩니다.
타일 파일의 최대 크기는? 도구는 10 MB 파일 크기 제한을 적용합니다. 10 MB를 초과하는 파일은 "파일이 너무 큽니다" 오류로 거부됩니다.
하프 브릭 타일링 모드는 어떻게 작동하나요? 하프 브릭 모드에서 각 홀수 행(행 인덱스 % 2 === 1)은 시작 X 위치를 stepX / 2만큼 오른쪽으로 이동시킵니다. 수평 줄눈이 엇갈린 클래식 벽돌 쌓기 패턴이 만들어집니다.
미러 타일링 모드는 어떻게 작동하나요? 미러링은 캔버스 렌더링 중 각 타일에 적용됩니다. 각 타일에 대해 도구는 열 인덱스가 홀수인지(수평 반전) 행 인덱스가 홀수인지(수직 반전) 확인합니다. 타일을 그리기 전에 ctx.scale(-1, 1) 또는 ctx.scale(1, -1)을 적용하고, 그린 후에 캔버스 상태를 복원합니다.
CSS 스니펫을 프로덕션에서 사용할 수 있나요? 사용할 수 있지만, 프로덕션 용도로는 별도의 이미지 파일이 일반적으로 더 좋습니다. CSS에 포함된 데이터 URL은 브라우저가 독립적으로 캐시할 수 없고 스타일시트 크기를 증가시키며 업데이트하기 어렵습니다.
회전이 타일 그리드에 미치는 영향은? 회전은 ctx.save(), ctx.translate(), ctx.rotate(), ctx.restore()를 사용하여 각 타일에 개별적으로 적용됩니다. 타일 그리드 자체는 회전하지 않습니다. 각 위치의 타일 이미지만 회전합니다.
패턴 설정을 저장할 수 있나요? 네. 설정은 useShareableState를 통해 자동으로 URL에 인코딩되므로 URL을 북마크하거나 공유하면 현재 설정이 유지됩니다. 프리미엄 서포터는 스케일, 회전, 간격, 캔버스 크기, 배경 색, 타일링 모드에 대한 이름 지정 프리셋을 저장할 수도 있습니다.
관련 도구
- 곧 출시 예정: SVG Pattern Generator — 소스 타일 이미지 없이 프로그래밍 방식으로 확장 가능한 벡터 패턴을 만들어보세요.
- 곧 출시 예정: Placeholder Generator — 패턴 메이커 테스트용으로 빠른 타일 입력에 사용할 플랫 컬러 플레이스홀더 이미지를 생성하세요.
- 곧 출시 예정: Noise Texture — 심리스 타일 입력으로 잘 어울리는 절차적 노이즈 텍스처를 생성하세요.
- 곧 출시 예정: Image Effects — 패턴 메이커 입력으로 사용하기 전에 타일 이미지에 필터를 적용하세요.
지금 Seamless Pattern Maker를 사용해 보세요: Glyph Widgets Seamless Pattern Maker