private Dictionary<string, string> GetAssStyles()
{
Dictionary<string, string> ret=new Dictionary<string, string>();
if (subtitles.Head?.Styling?.Style == null || subtitles.Head.Styling.Style.Count==0)
return ret;
foreach (Style s in subtitles.Head.Styling.Style)
{
StringBuilder bld = new StringBuilder();
bld.Append("Style: Style"+s.Id);
bld.Append(",");
bld.Append(string.IsNullOrEmpty(s.FontFamily) ? "Trebuchet MS Bold" : s.FontFamily);
bld.Append(",");
bld.Append(GetFontSize(s));
bld.Append(",");
bld.Append(GetAssColor(s.Color));
bld.Append(",&H000000FF,");
int defaultoutline = 2;
int defaultbold = 0;
int defaultitalic = 0;
int defaultunderline = 0;
int defaultstrikethrough = 0;
if (string.IsNullOrEmpty(s.TextOutline))
bld.Append("&H00020713");
else
{
string[] nn = s.TextOutline.Split(' ');
if (nn.Length > 1)
{
string k= Regex.Replace(nn[1], @"[^\d]", "");
int.TryParse(k, out defaultoutline);
}
bld.Append(GetAssColor(nn[0], "&H00000000"));
}
bld.Append(",");
bld.Append(GetAssColor(s.BackgroundColor, "&H00000000"));
bld.Append(",");
if (s.FontWeight != null)
{
if (s.FontWeight.ToLower().Contains("bold"))
defaultbold = -1;
}
bld.Append(defaultbold);
bld.Append(",");
if (s.FontStyle != null)
{
if (!s.FontStyle.ToLower().Contains("normal") && !s.FontStyle.Contains("inherit"))
defaultitalic = -1;
}
bld.Append(defaultitalic);
bld.Append(",");
if (s.TextDecoration != null)
{
if (s.TextDecoration.ToLower().Contains("underline"))
defaultunderline = -1;
else if (s.TextDecoration.ToLower().Contains("lineThrough"))
defaultstrikethrough = -1;
}
bld.Append(defaultunderline);
bld.Append(",");
bld.Append(defaultstrikethrough);
bld.Append(",100,100,0,0,1,");
bld.Append(defaultoutline);
bld.Append(",0,");
int defaultalign = 2;
if (s.TextAlign != null)
{
switch (s.TextAlign.ToLower())
{
case "left":
case "start":
defaultalign = 1;
break;
case "center":
defaultalign = 2;
break;
case "end":
case "right":
defaultalign = 3;
break;
}
}
bld.Append(defaultalign);
bld.Append(",20,20,18,1");
ret.Add(s.Id, bld.ToString());
}
return ret;
}