本文整理汇总了C#中Nikse.SubtitleEdit.Core.Subtitle.LoadSubtitle方法的典型用法代码示例。如果您正苦于以下问题:C# Subtitle.LoadSubtitle方法的具体用法?C# Subtitle.LoadSubtitle怎么用?C# Subtitle.LoadSubtitle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Nikse.SubtitleEdit.Core.Subtitle
的用法示例。
在下文中一共展示了Subtitle.LoadSubtitle方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetLanguageCode
private static string GetLanguageCode(string fileName)
{
fileName = Path.Combine(Directory.GetCurrentDirectory(), fileName);
var sub = new Subtitle();
Encoding encoding;
sub.LoadSubtitle(fileName, out encoding, null);
return LanguageAutoDetect.AutoDetectGoogleLanguage(sub);
}
示例2: VerifyDragDrop
private void VerifyDragDrop(ListView listView, DragEventArgs e)
{
var files = e.Data.GetData(DataFormats.FileDrop) as string[];
if (files.Length > 1)
{
MessageBox.Show(Configuration.Settings.Language.Main.DropOnlyOneFile,
"", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
string filePath = files[0];
var listExt = new List<string>();
foreach (var s in Utilities.GetOpenDialogFilter().Split(new[] { '*' }, StringSplitOptions.RemoveEmptyEntries))
{
if (s.EndsWith(';'))
listExt.Add(s.Trim(';'));
}
if (!listExt.Contains(Path.GetExtension(filePath)))
return;
if (FileUtil.IsVobSub(filePath) || FileUtil.IsBluRaySup(filePath))
{
MessageBox.Show(Configuration.Settings.Language.CompareSubtitles.CannotCompareWithImageBasedSubtitles);
return;
}
Encoding encoding;
if (listView.Name == "subtitleListView1")
{
_subtitle1 = new Subtitle();
_subtitle1.LoadSubtitle(filePath, out encoding, null);
subtitleListView1.Fill(_subtitle1);
subtitleListView1.SelectIndexAndEnsureVisible(0);
subtitleListView2.SelectIndexAndEnsureVisible(0);
labelSubtitle1.Text = filePath;
_language1 = Utilities.AutoDetectGoogleLanguage(_subtitle1);
if (_subtitle1.Paragraphs.Count > 0)
CompareSubtitles();
}
else
{
_subtitle2 = new Subtitle();
_subtitle2.LoadSubtitle(filePath, out encoding, null);
subtitleListView2.Fill(_subtitle2);
subtitleListView1.SelectIndexAndEnsureVisible(0);
subtitleListView2.SelectIndexAndEnsureVisible(0);
labelSubtitle2.Text = filePath;
if (_subtitle2.Paragraphs.Count > 0)
CompareSubtitles();
}
}
示例3: ButtonOpenSubtitle2Click
private void ButtonOpenSubtitle2Click(object sender, EventArgs e)
{
openFileDialog1.FileName = string.Empty;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (FileUtil.IsVobSub(openFileDialog1.FileName) || FileUtil.IsBluRaySup(openFileDialog1.FileName))
{
MessageBox.Show(Configuration.Settings.Language.CompareSubtitles.CannotCompareWithImageBasedSubtitles);
return;
}
_subtitle2 = new Subtitle();
Encoding encoding;
var format = _subtitle2.LoadSubtitle(openFileDialog1.FileName, out encoding, null);
if (format == null)
{
var pac = new Pac();
if (pac.IsMine(null, openFileDialog1.FileName))
{
pac.BatchMode = true;
pac.LoadSubtitle(_subtitle2, null, openFileDialog1.FileName);
format = pac;
}
}
if (format == null)
{
var cavena890 = new Cavena890();
if (cavena890.IsMine(null, openFileDialog1.FileName))
{
cavena890.LoadSubtitle(_subtitle2, null, openFileDialog1.FileName);
}
}
subtitleListView2.Fill(_subtitle2);
subtitleListView1.SelectIndexAndEnsureVisible(0);
subtitleListView2.SelectIndexAndEnsureVisible(0);
labelSubtitle2.Text = openFileDialog1.FileName;
if (_subtitle2.Paragraphs.Count > 0)
CompareSubtitles();
}
}
示例4: ButtonOpenSubtitle1Click
private void ButtonOpenSubtitle1Click(object sender, EventArgs e)
{
openFileDialog1.FileName = string.Empty;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (FileUtil.IsVobSub(openFileDialog1.FileName) || FileUtil.IsBluRaySup(openFileDialog1.FileName))
{
MessageBox.Show(Configuration.Settings.Language.CompareSubtitles.CannotCompareWithImageBasedSubtitles);
return;
}
_subtitle1 = new Subtitle();
Encoding encoding;
var format = _subtitle1.LoadSubtitle(openFileDialog1.FileName, out encoding, null);
if (format == null)
{
var pac = new Pac();
if (pac.IsMine(null, openFileDialog1.FileName))
{
pac.BatchMode = true;
pac.LoadSubtitle(_subtitle1, null, openFileDialog1.FileName);
format = pac;
}
}
if (format == null)
{
var cavena890 = new Cavena890();
if (cavena890.IsMine(null, openFileDialog1.FileName))
{
cavena890.LoadSubtitle(_subtitle1, null, openFileDialog1.FileName);
}
}
if (format == null)
{
var spt = new Spt();
if (spt.IsMine(null, openFileDialog1.FileName))
{
spt.LoadSubtitle(_subtitle1, null, openFileDialog1.FileName);
}
}
if (format == null)
{
var cheetahCaption = new CheetahCaption();
if (cheetahCaption.IsMine(null, openFileDialog1.FileName))
{
cheetahCaption.LoadSubtitle(_subtitle1, null, openFileDialog1.FileName);
}
}
if (format == null)
{
var chk = new Chk();
if (chk.IsMine(null, openFileDialog1.FileName))
{
chk.LoadSubtitle(_subtitle1, null, openFileDialog1.FileName);
}
}
if (format == null)
{
var asc = new TimeLineAscii();
if (asc.IsMine(null, openFileDialog1.FileName))
{
asc.LoadSubtitle(_subtitle1, null, openFileDialog1.FileName);
}
}
if (format == null)
{
var asc = new TimeLineFootageAscii();
if (asc.IsMine(null, openFileDialog1.FileName))
{
asc.LoadSubtitle(_subtitle1, null, openFileDialog1.FileName);
}
}
subtitleListView1.Fill(_subtitle1);
subtitleListView1.SelectIndexAndEnsureVisible(0);
subtitleListView2.SelectIndexAndEnsureVisible(0);
labelSubtitle1.Text = openFileDialog1.FileName;
_language1 = Utilities.AutoDetectGoogleLanguage(_subtitle1);
if (_subtitle1.Paragraphs.Count > 0)
CompareSubtitles();
}
}
示例5: buttonImport_Click
private void buttonImport_Click(object sender, EventArgs e)
{
openFileDialogImport.Title = Configuration.Settings.Language.SubStationAlphaStyles.ImportStyleFromFile;
openFileDialogImport.InitialDirectory = Configuration.DataDirectory;
if (_isSubStationAlpha)
{
openFileDialogImport.Filter = SubStationAlpha.NameOfFormat + "|*.ssa|" + Configuration.Settings.Language.General.AllFiles + "|*.*";
saveFileDialogStyle.FileName = "my_styles.ssa";
}
else
{
openFileDialogImport.Filter = AdvancedSubStationAlpha.NameOfFormat + "|*.ass|" + Configuration.Settings.Language.General.AllFiles + "|*.*";
saveFileDialogStyle.FileName = "my_styles.ass";
}
if (openFileDialogImport.ShowDialog(this) == DialogResult.OK)
{
Encoding encoding = null;
var s = new Subtitle();
var format = s.LoadSubtitle(openFileDialogImport.FileName, out encoding, null);
if (format != null && format.HasStyleSupport)
{
var styles = AdvancedSubStationAlpha.GetStylesFromHeader(s.Header);
if (styles.Count > 0)
{
var cs = new ChooseStyle(s, format.GetType() == typeof(SubStationAlpha));
if (cs.ShowDialog(this) == DialogResult.OK && cs.SelectedStyleName != null)
{
SsaStyle style = AdvancedSubStationAlpha.GetSsaStyle(cs.SelectedStyleName, s.Header);
if (GetSsaStyle(style.Name).LoadedFromHeader)
{
int count = 2;
bool doRepeat = GetSsaStyle(style.Name + count).LoadedFromHeader;
while (doRepeat)
{
doRepeat = GetSsaStyle(style.Name + count).LoadedFromHeader;
count++;
}
style.RawLine = style.RawLine.Replace(" " + style.Name + ",", " " + style.Name + count + ",");
style.Name = style.Name + count;
}
_doUpdate = false;
AddStyle(listViewStyles, style, Subtitle, _isSubStationAlpha);
SsaStyle oldStyle = GetSsaStyle(listViewStyles.Items[0].Text);
_header = _header.Trim();
if (_header.EndsWith("[Events]"))
{
_header = _header.Substring(0, _header.Length - "[Events]".Length).Trim();
_header += Environment.NewLine + style.RawLine;
_header += Environment.NewLine + Environment.NewLine + "[Events]" + Environment.NewLine;
}
else
{
_header = _header.Trim() + Environment.NewLine + style.RawLine + Environment.NewLine;
}
listViewStyles.Items[listViewStyles.Items.Count - 1].Selected = true;
listViewStyles.Items[listViewStyles.Items.Count - 1].EnsureVisible();
listViewStyles.Items[listViewStyles.Items.Count - 1].Focused = true;
textBoxStyleName.Text = style.Name;
textBoxStyleName.Focus();
_doUpdate = true;
SetControlsFromStyle(style);
listViewStyles_SelectedIndexChanged(null, null);
labelStatus.Text = string.Format(Configuration.Settings.Language.SubStationAlphaStyles.StyleXImportedFromFileY, style.Name, openFileDialogImport.FileName);
timerClearStatus.Start();
}
}
}
}
}
示例6: buttonExport_Click
private void buttonExport_Click(object sender, EventArgs e)
{
if (listViewStyles.SelectedItems.Count != 1)
return;
string styleName = listViewStyles.SelectedItems[0].Text;
saveFileDialogStyle.Title = Configuration.Settings.Language.SubStationAlphaStyles.ExportStyleToFile;
saveFileDialogStyle.InitialDirectory = Configuration.DataDirectory;
if (_isSubStationAlpha)
{
saveFileDialogStyle.Filter = SubStationAlpha.NameOfFormat + "|*.ssa|" + Configuration.Settings.Language.General.AllFiles + "|*.*";
saveFileDialogStyle.FileName = "my_styles.ssa";
}
else
{
saveFileDialogStyle.Filter = AdvancedSubStationAlpha.NameOfFormat + "|*.ass|" + Configuration.Settings.Language.General.AllFiles + "|*.*";
saveFileDialogStyle.FileName = "my_styles.ass";
}
if (saveFileDialogStyle.ShowDialog(this) == DialogResult.OK)
{
if (File.Exists(saveFileDialogStyle.FileName))
{
Encoding encoding = null;
var s = new Subtitle();
var format = s.LoadSubtitle(saveFileDialogStyle.FileName, out encoding, null);
if (format == null)
{
MessageBox.Show("Not subtitle format: " + _format.Name);
return;
}
else if (format.Name != _format.Name)
{
MessageBox.Show(string.Format("Cannot save {1} style in {0} file!", format.Name, _format.Name));
return;
}
else
{
var sb = new StringBuilder();
bool stylesOn = false;
bool done = false;
string styleFormat = "Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding";
foreach (string line in File.ReadAllLines(saveFileDialogStyle.FileName))
{
if (line.StartsWith("format:", StringComparison.OrdinalIgnoreCase))
{
styleFormat = line;
}
else if (line.StartsWith("style:", StringComparison.OrdinalIgnoreCase))
{
stylesOn = true;
}
else if (stylesOn && !done)
{
done = true;
SsaStyle style = GetSsaStyle(styleName);
if (_isSubStationAlpha)
{
sb.AppendLine(style.ToRawSsa(styleFormat));
}
else
{
sb.AppendLine(style.ToRawAss(styleFormat));
}
}
sb.AppendLine(line);
if (stylesOn && line.Replace(" ", string.Empty).TrimStart().StartsWith("style:" + styleName.Replace(" ", string.Empty).Trim() + ",", StringComparison.OrdinalIgnoreCase))
{
MessageBox.Show(string.Format(Configuration.Settings.Language.SubStationAlphaStyles.StyleAlreadyExits, styleName));
return;
}
}
File.WriteAllText(saveFileDialogStyle.FileName, sb.ToString(), Encoding.UTF8);
}
}
else
{
var sb = new StringBuilder();
foreach (var line in _header.Replace(Environment.NewLine, "\n").Split('\n'))
{
if (line.StartsWith("style:", StringComparison.OrdinalIgnoreCase))
{
if (line.ToLower().Replace(" ", string.Empty).StartsWith("style:" + styleName.ToLower().Trim()))
sb.AppendLine(line);
}
else
{
sb.AppendLine(line);
}
}
string content = sb.ToString();
if (content.TrimEnd().EndsWith("[Events]"))
{
content = content.Trim() + Environment.NewLine +
"Format: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text" + Environment.NewLine +
"Dialogue: 0,0:00:31.91,0:00:33.91,Default,,0,0,0,,My Styles :)";
}
File.WriteAllText(saveFileDialogStyle.FileName, content, Encoding.UTF8);
}
//.........这里部分代码省略.........
示例7: OpenSubtitle
public void OpenSubtitle(string fileName, bool requireSaveAs, Encoding useThisEncoding = null)
{
if (System.IO.File.Exists(fileName))
{
// bool videoFileLoaded = false;
var file = new FileInfo(fileName);
var ext = file.Extension.ToLowerInvariant();
_subtitle = new Subtitle();
Encoding encoding = useThisEncoding;
if (encoding == null)
{
LanguageAutoDetect.GetEncodingFromFile(fileName);
}
SubtitleFormat format = _subtitle.LoadSubtitle(fileName, out encoding, encoding);
// check for idx file
if (format == null && file.Length > 100 && ext == ".idx")
{
MessageBox.Show(_language.ErrorLoadIdx);
return;
}
// check for .rar file
if (format == null && file.Length > 100 && FileUtil.IsRar(fileName))
{
MessageBox.Show(_language.ErrorLoadRar);
return;
}
// check for .zip file
if (format == null && file.Length > 100 && FileUtil.IsZip(fileName))
{
MessageBox.Show(_language.ErrorLoadZip);
return;
}
// check for .png file
if (format == null && file.Length > 100 && FileUtil.IsPng(fileName))
{
MessageBox.Show(_language.ErrorLoadPng);
return;
}
// check for .jpg file
if (format == null && file.Length > 100 && FileUtil.IsJpg(fileName))
{
MessageBox.Show(_language.ErrorLoadJpg);
return;
}
// check for .srr file
if (format == null && file.Length > 100 && ext == ".srr" && FileUtil.IsSrr(fileName))
{
MessageBox.Show(_language.ErrorLoadSrr);
return;
}
// check for Torrent file
if (format == null && file.Length > 50 && FileUtil.IsTorrentFile(fileName))
{
MessageBox.Show(_language.ErrorLoadTorrent);
return;
}
// check for all binary zeroes (I've heard about this a few times... perhaps related to crashes?)
if (format == null && file.Length > 50 && FileUtil.IsSubtitleFileAllBinaryZeroes(fileName))
{
MessageBox.Show(_language.ErrorLoadBinaryZeroes);
return;
}
if (format == null && file.Length < 500000)
{
// Try to use a generic subtitle format parser (guessing subtitle format)
try
{
var enc = LanguageAutoDetect.GetEncodingFromFile(fileName);
var s = System.IO.File.ReadAllText(fileName, enc);
var uknownFormatImporter = new UknownFormatImporter { UseFrames = true };
var genericParseSubtitle = uknownFormatImporter.AutoGuessImport(s.SplitToLines());
if (genericParseSubtitle.Paragraphs.Count > 1)
{
_subtitle = genericParseSubtitle;
//ShowStatus("Guessed subtitle format via generic subtitle parser!");
}
}
catch
{
}
}
if (format != null && format.IsFrameBased)
_subtitle.CalculateTimeCodesFromFrameNumbers(CurrentFrameRate);
else
_subtitle.CalculateFrameNumbersFromTimeCodes(CurrentFrameRate);
//.........这里部分代码省略.........
示例8: SortAndLoad
private void SortAndLoad()
{
JoinedFormat = new SubRip(); // default subtitle format
string header = null;
SubtitleFormat lastFormat = null;
var subtitles = new List<Subtitle>();
for (int k = 0; k < _fileNamesToJoin.Count; k++)
{
string fileName = _fileNamesToJoin[k];
try
{
var sub = new Subtitle();
Encoding encoding;
var format = sub.LoadSubtitle(fileName, out encoding, null);
if (format == null)
{
for (int j = k; j < _fileNamesToJoin.Count; j++)
_fileNamesToJoin.RemoveAt(j);
MessageBox.Show("Unkown subtitle format: " + fileName);
return;
}
if (sub.Header != null)
header = sub.Header;
if (lastFormat == null || lastFormat.FriendlyName == format.FriendlyName)
lastFormat = format;
else
lastFormat = new SubRip(); // default subtitle format
subtitles.Add(sub);
}
catch (Exception exception)
{
for (int j = k; j < _fileNamesToJoin.Count; j++)
_fileNamesToJoin.RemoveAt(j);
MessageBox.Show(exception.Message);
return;
}
}
JoinedFormat = lastFormat;
for (int outer = 0; outer < subtitles.Count; outer++)
{
for (int inner = 1; inner < subtitles.Count; inner++)
{
var a = subtitles[inner - 1];
var b = subtitles[inner];
if (a.Paragraphs.Count > 0 && b.Paragraphs.Count > 0 && a.Paragraphs[0].StartTime.TotalMilliseconds > b.Paragraphs[0].StartTime.TotalMilliseconds)
{
string t1 = _fileNamesToJoin[inner - 1];
_fileNamesToJoin[inner - 1] = _fileNamesToJoin[inner];
_fileNamesToJoin[inner] = t1;
var t2 = subtitles[inner - 1];
subtitles[inner - 1] = subtitles[inner];
subtitles[inner] = t2;
}
}
}
listViewParts.BeginUpdate();
listViewParts.Items.Clear();
int i = 0;
foreach (string fileName in _fileNamesToJoin)
{
Subtitle sub = subtitles[i];
var lvi = new ListViewItem(string.Format("{0:#,###,###}", sub.Paragraphs.Count));
if (sub.Paragraphs.Count > 0)
{
lvi.SubItems.Add(sub.Paragraphs[0].StartTime.ToString());
lvi.SubItems.Add(sub.Paragraphs[sub.Paragraphs.Count - 1].StartTime.ToString());
}
else
{
lvi.SubItems.Add("-");
lvi.SubItems.Add("-");
}
lvi.SubItems.Add(fileName);
listViewParts.Items.Add(lvi);
i++;
}
listViewParts.EndUpdate();
JoinedSubtitle = new Subtitle();
if (JoinedFormat.FriendlyName != SubRip.NameOfFormat)
JoinedSubtitle.Header = header;
foreach (Subtitle sub in subtitles)
{
foreach (Paragraph p in sub.Paragraphs)
{
JoinedSubtitle.Paragraphs.Add(p);
}
}
JoinedSubtitle.Renumber();
labelTotalLines.Text = string.Format(Configuration.Settings.Language.JoinSubtitles.TotalNumberOfLinesX, JoinedSubtitle.Paragraphs.Count);
}