본문으로 바로 가기
SubtitleMatrix

자막 색상 일괄 변경

텍스트글자 색상 바꾸기
또는 자막 텍스트를 붙여넣으세요

옵션

#ffcc00

파일 전체가 바뀔 색을 고르세요. 줄에 이미 있던 색은 쌓이지 않고 대체되므로 한 번 실행하면 줄마다 색이 정확히 하나가 됩니다. 굵게, 기울임, 밑줄, 가라오케 타이밍은 그대로 둡니다. #rrggbb 형식만 씁니다. 이 사이트가 받는 아홉 형식 모두가 정확히 담을 수 있는 표기가 그것 하나입니다. 인라인 색을 그리는 플레이어는 많지 않고 SRT에는 표준도 없습니다. 파일에는 색이 들어가지만 보여 줄지는 플레이어에 달렸습니다.

이 페이지는 자막 파일의 모든 줄을 하나의 색으로 칠합니다. 패널은 색 하나만 받고, 각 줄의 글자 범위를 감싸는 표시를 씁니다. 어떤 표시인지는 형식이 정합니다. SRT, WebVTT, SBV, SAMI는 `<font color="#rrggbb">`를 쓰고, ASS와 SSA는 텍스트 앞에서 열리고 뒤에서 `{\c}`로 닫히는 `{\c&H…&}` 오버라이드 코드를 쓰며, TTML은 `<span tts:color>`를 씁니다. JSON은 태그 배열로, CSV는 인용된 셀 안의 같은 `<font>` 마크업으로 색을 적습니다.

이미 있던 색은 위에 겹치지 않고 대체됩니다. 각 줄의 모든 색 범위를 먼저 지우고 줄 전체를 덮는 범위 하나를 더하기 때문입니다. 결과는 `<font>` 안에 `<font>`가 든 모양이 아니라 바깥쪽 `<font>` 하나입니다. 중첩된 색 태그는 플레이어마다 가장 다르게 해석하는 경우라서, 어떤 플레이어는 안쪽을 어떤 플레이어는 바깥쪽을 따르고 어떤 플레이어는 둘 다 납작하게 만듭니다. 이 페이지를 지난 파일에는 하나의 분명한 답만 있습니다.

굵게, 기울임, 밑줄, 노래방 타이밍은 유지되고 그 범위도 같은 글자에 붙어 있습니다. 색 범위만 지웠다가 다시 더하기 때문입니다. ASS에서는 `{\i1}`과 닫는 `{\i0}`이 텍스트 둘레 같은 자리에 남고, 색 오버라이드가 그 앞에서 열리고 뒤에서 닫힙니다. 빈 큐는 아무것도 감싸지 않는 태그를 얻지 않고 빈 채로 남습니다. 마크업이 없는 글자를 감싸면 빈 큐를 고치는 것이 아니라 grep에서 숨길 뿐이기 때문입니다.

인라인 색을 쓸 자리가 없는 형식은 이 페이지가 아예 받지 않습니다. LRC와 MicroDVD에는 색 문법이 없어서 실행하면 변경을 보고하고 아무것도 쓰지 않을 것입니다. 업로드는 없고, 받는 형식은 SRT, WebVTT, ASS, SSA, SBV, SAMI, TTML, JSON, CSV 아홉 가지입니다.

예시

평범한 SRT 큐 두 개

입력

1
00:00:01,000 --> 00:00:02,000
Hello there.

2
00:00:03,000 --> 00:00:04,000
Second line.

결과물

1
00:00:01,000 --> 00:00:02,000
<font color="#ffcc00">Hello there.</font>

2
00:00:03,000 --> 00:00:04,000
<font color="#ffcc00">Second line.</font>

줄마다 `<font>` 하나가 줄 전체를 감싸고, 타임코드와 빈 줄은 들어온 그대로입니다. 태그는 큐의 속성이 아니라 줄 위의 범위라서, 강제 줄 바꿈으로 두 줄이 된 큐는 줄 바꿈을 가로지르는 태그 하나가 아니라 태그 두 개를 얻습니다.

이미 색과 기울임이 있는 줄

입력

1
00:00:01,000 --> 00:00:02,000
<i>Hello</i> <font color="#00ff00">there</font>.

결과물

1
00:00:01,000 --> 00:00:02,000
<font color="#ffcc00"><i>Hello</i> there.</font>

새 색을 입히기 전에 초록색 범위를 지우므로 결과는 기울임을 안에 둔 줄 전체의 `<font>` 하나입니다. `<font>` 안의 `<font>`가 아니라서 중첩 규칙이 플레이어에 따라 달라지고 결과가 조용히 달라지는 일이 없습니다. 초록이던 부분이 이제 나머지와 같은 색이 되는데, 색 하나를 요청한 패널의 정직한 해석입니다.

같은 큐를 ASS 파일에서

입력

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize
Style: Default,Arial,20

[Events]
Format: Layer, Start, End, Style, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,Hello there

결과물

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize
Style: Default,Arial,20

[Events]
Format: Layer, Start, End, Style, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,{\c&H0000CCFF&}Hello there{\c}

ASS에는 `<font>`가 없습니다. 색은 텍스트 앞에서 열리고 뒤의 `{\c}` 하나로 닫히는 오버라이드 코드라서 줄의 나머지가 실수로 함께 칠해지지 않습니다. 스타일시트의 `PrimaryColour`는 고치지 않습니다. 큐 수준의 오버라이드가 더 강한 지시이고 이 큐에만 적용되는 유일한 방법이기 때문입니다.

텍스트가 없는 큐

입력

1
00:00:01,000 --> 00:00:02,000

2
00:00:03,000 --> 00:00:04,000
Hi.

결과물

1
00:00:01,000 --> 00:00:02,000

2
00:00:03,000 --> 00:00:04,000
<font color="#ffcc00">Hi.</font>

빈 큐는 아무것도 감싸지 않는 `<font>`를 얻는 대신 빈 채로 남습니다. 빈 큐는 그 자체로 이미 구조적인 문제이고 검사 페이지가 보고합니다. 안에 텍스트가 없는 마크업 태그는 그것을 고치지 않고 grep에서 숨길 뿐입니다. 텍스트가 있는 큐는 정상적으로 칠해집니다.

자주 묻는 질문

이 색 페이지는 어떤 형식에 무엇을 쓰나요?

아홉 형식입니다. SRT, WebVTT, ASS, SSA, SBV, SAMI, TTML, JSON, CSV입니다. SRT, WebVTT, SBV, SAMI는 `<font color="#rrggbb">`를, ASS와 SSA는 `{\c…}` 오버라이드를 `{\c}`로 닫아 쓰고, TTML은 `<span tts:color>`, JSON은 줄 위의 태그 범위로, CSV는 인용된 텍스트 셀 안의 같은 `<font>` 마크업으로 색을 적습니다. 인라인 색을 놓을 자리가 없는 형식은 이 페이지가 아예 받지 않습니다. LRC나 MicroDVD에는 색 문법이 없어서 실행하면 변경을 보고하고 아무것도 쓰지 않을 것입니다.

`#ffcc00`을 골랐는데 ASS 출력이 `&H0000CCFF&`인 이유는 무엇인가요?

ASS 색은 바이트 순서를 반대로 써서 `&HAABBGGRR`이기 때문입니다. 알파가 먼저 오고 파랑, 초록, 빨강 짝이 이어집니다. `#ffcc00`은 빨강 255, 초록 204, 파랑 0이라서 알파 `00`, 파랑 `00`, 초록 `CC`, 빨강 `FF`가 되어 `&H0000CCFF&`가 됩니다. 고른 색과 같은 값이고 플레이어도 같은 노랑을 보여 줍니다. 숫자가 뒤집혀 보이는 것은 형식이 색을 거꾸로 저장하기 때문입니다.

모든 플레이어가 실제로 새 색을 보여 주나요?

아니요, 그리고 그것이 이 페이지의 정직한 경계입니다. `<font color>`는 SRT 사양의 일부가 아니라 대부분의 플레이어가 허용하고 일부는 무시하는 마크업이며, ASS 오버라이드 코드는 VLC나 mpv 같은 libass 기반 플레이어가 따르지만 모든 하드웨어 셋톱박스가 따르지는 않습니다. 페이지는 표시를 올바르게 쓰고 결과는 파일 자체에서 확인할 수 있습니다. 특정 플레이어가 보여 줄지는 그 플레이어가 정합니다. 화면에서 색을 보장해야 한다면 영상에 구워 넣어야 하고, 그것은 다른 일입니다.

파일에 이미 있던 색은 어떻게 되나요?

위에 겹치지 않고 대체됩니다. 각 줄의 모든 색 범위를 먼저 지우고 줄 전체를 덮는 범위 하나를 더하므로 결과는 `<font>` 안의 `<font>`가 아니라 `<font>` 하나입니다. 중첩된 색 태그는 플레이어가 가장 많이 갈리는 경우이고, 어떤 플레이어는 안쪽을 어떤 플레이어는 바깥쪽을 따르며 어떤 플레이어는 둘 다 납작하게 만듭니다. 이 페이지를 지난 파일에는 분명한 답이 하나만 있습니다.

페이지가 개별 단어를 칠하나요, 파일 전체를 칠하나요?

파일 전체를, 하나의 색으로, 모든 줄을 칠합니다. 이 페이지에는 큐별이나 단어별 범위가 없고 그것은 의도된 것입니다. 패널이 값 하나를 들고 있고, 어떤 큐를 클릭했는지에 따라 결과가 달라지는 실행은 파일에서 재현할 수 없기 때문입니다. 한 단어만 골라내야 하는 줄은 색 변경이 아니라 텍스트 편집이고, 이 사이트의 찾기 바꾸기 페이지가 그 일부를 할 수 있습니다.

색을 입혀도 굵게, 기울임, 밑줄, 노래방 타이밍이 유지되나요?

유지되고 그 범위도 같은 글자에 붙어 있습니다. 색 범위만 지웠다가 다시 더하고 나머지 네 가지는 건드리지 않으므로 줄 안의 기울임 단어는 새 색 안에서도 기울임으로 남습니다. ASS에서는 `{\i1}`과 닫는 `{\i0}`이 텍스트 둘레 같은 자리에 그대로 있고, 색 오버라이드가 그 앞에서 열리고 뒤에서 닫힙니다.

관련 도구