Chuyển đến nội dung chính
SubtitleMatrix

Đổi màu chữ trong phụ đề

Văn bản và kiểuĐổi màu chữ
Hoặc dán văn bản phụ đề

Tùy chọn

#ffcc00

Chọn màu mà toàn bộ tệp chuyển sang. Các màu hiện có trên một dòng được thay thế chứ không chồng lên nhau, nên một lần chạy để lại đúng một màu mỗi dòng; bold, italic, underline và thời gian karaoke được để yên. Chỉ #rrggbb được ghi — đó là cách viết duy nhất cả chín định dạng được chấp nhận đều mang được chính xác. Không phải trình phát nào cũng vẽ màu nội dòng, và SRT không có tiêu chuẩn cho việc này: tệp sẽ mang màu, nhưng việc nó có hiển thị hay không là tùy trình phát.

Trang này đổi màu chữ của toàn bộ phụ đề thành một màu duy nhất, hoặc thay mọi màu cũ bằng màu bạn chọn. Tệp được xử lý trong trình duyệt, không có tệp nào được tải lên, và có thể kéo nhiều tệp vào để xử lý hàng loạt.

Chín định dạng được ghi màu: SRT, WebVTT, ASS, SSA, SBV, SAMI, TTML, JSON và CSV. Cách viết khác nhau theo định dạng — SRT, WebVTT, SBV và SAMI dùng `<font color="#rrggbb">`; ASS và SSA dùng mã ghi đè `\c&HBBGGRR&`, còn giá trị trong bảng kiểu ASS viết `&HAABBGGRR` với alpha đứng đầu; TTML dùng `<span tts:color="#rrggbb">`. Giá trị phải là `#rrggbb` đủ sáu chữ số, không nhận tên màu hay dạng rút gọn.

Màu cũ trên mỗi dòng bị gỡ trước rồi mới đặt một range màu mới phủ cả dòng, nên không sinh ra `<font>` lồng nhau. In đậm, in nghiêng, gạch chân và thời gian karaoke được giữ nguyên; cue rỗng không nhận thẻ màu. Cần biết là một số trình phát bỏ qua màu nội tuyến và hiển thị theo kiểu của nó.

Ví dụ

Hai cue SRT trơn

Đầu vào

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

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

Kết quả

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>

Mỗi dòng nhận một `<font>` bọc quanh toàn bộ dòng, còn timecode và dòng trống giữ đúng như lúc vào. Thẻ là một range trên dòng chứ không phải thuộc tính của cue, nên cue có hai dòng ngắt cứng nhận hai thẻ chứ không phải một thẻ vắt qua chỗ ngắt.

Dòng đã có sẵn màu và in nghiêng

Đầu vào

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

Kết quả

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

Range màu xanh bị gỡ trước khi màu mới được đặt, nên kết quả là một `<font>` quanh dòng với phần in nghiêng vẫn nằm bên trong — không phải `<font>` lồng trong `<font>`, nơi quy tắc lồng phụ thuộc trình phát và kết quả khác nhau trên từng cái. Phần từng xanh giờ cùng màu với mọi thứ khác, đúng như một bảng chỉ cho chọn một màu.

Cùng cue đó trên tệp ASS

Đầu vào

[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

Kết quả

[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 không có `<font>`; màu là mã ghi đè mở trước văn bản và đóng bằng `{\c}` trơn sau đó, nên phần còn lại của dòng không bị tô nhầm. `PrimaryColour` trong bảng kiểu không bị sửa — mã ghi đè ở mức cue là chỉ thị mạnh hơn và là thứ duy nhất chỉ áp cho cue này.

Cue không có văn bản

Đầu vào

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

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

Kết quả

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

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

Cue rỗng được để rỗng thay vì nhận một `<font>` bọc quanh không có gì. Cue rỗng vốn đã là vấn đề cấu trúc — các trang kiểm tra sẽ báo nó — và một thẻ định dạng không có chữ bên trong không sửa được lỗi đó, chỉ che nó khỏi một lệnh grep. Cue có chữ vẫn được tô bình thường.

Câu hỏi thường gặp

Trang đổi màu phụ đề ghi được những định dạng nào, và dấu màu trông ra sao ở từng định dạng?

Chín định dạng: SRT, WebVTT, ASS, SSA, SBV, SAMI, TTML, JSON và CSV. SRT, WebVTT, SBV, SAMI dùng `<font color="#rrggbb">`; ASS và SSA dùng `\c&HBBGGRR&` trong mã ghi đè; TTML dùng `<span tts:color="#rrggbb">`; JSON và CSV lưu màu như một trường của range.

Vì sao đầu ra ASS ghi `&H0000CCFF&` khi tôi chọn `#ffcc00`?

Vì màu ASS được viết theo thứ tự byte ngược: `&HAABBGGRR`, alpha đứng trước rồi đến lam, lục, đỏ. `#ffcc00` có đỏ `ff`, lục `cc`, lam `00`, nên khi đảo thứ tự thành lam-lục-đỏ sẽ ra `00CCFF`. Đó là cùng một màu, chỉ khác cách ghi.

Mọi trình phát video có hiển thị đúng màu mới của phụ đề không?

Không, và đó là ranh giới trung thực của trang này. Màu nội tuyến phụ thuộc trình phát: nhiều trình phát tôn trọng `<font color>` hoặc mã ASS, nhưng cũng có trình phát bỏ qua và dùng kiểu của nó. Trang ghi đúng cú pháp của từng định dạng, không bảo đảm mọi trình phát hiển thị.

Màu mà tệp phụ đề đã có trước đó sẽ ra sao?

Chúng bị thay thế chứ không bị chồng lên. Trang gỡ toàn bộ range màu trên mỗi dòng rồi đặt một range mới phủ cả dòng, nên kết quả chỉ có một màu. Các range khác như in nghiêng hay in đậm không bị gỡ.

Trang đổi màu tô từng từ hay cả tệp phụ đề?

Cả tệp, một màu, mọi dòng có chữ. Không có tùy chọn tô riêng một từ hay một cue; muốn giữ cấu trúc màu khác nhau thì phải sửa thủ công sau khi chạy hoặc chia tệp trước.

In đậm, in nghiêng, gạch chân và thời gian karaoke có được giữ khi đổi màu không?

Có. Trang chỉ gỡ các range `color` rồi thêm một range `color` mới; bốn loại còn lại — in đậm, in nghiêng, gạch chân và karaoke — giữ nguyên và vẫn phủ đúng các ký tự cũ. Đó là lý do đổi màu không làm mất nhấn mạnh trong câu.

Công cụ liên quan