mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
Updated language tags
git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@1743 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
parent
54f78a2ea2
commit
dc3760960c
@ -4,14 +4,18 @@
|
||||
* NEW:
|
||||
* Added a few new subtitle formats
|
||||
* Added "return-from-fullscreen" button to fullscreen player - thx fox/Leszek
|
||||
* Added Export to 3D Half-top/bottom - thx r0lZ
|
||||
* IMPROVED:
|
||||
* Fix overlapping display times now smarter
|
||||
* Updated Basque language file - thx Xabier Aramendi
|
||||
* Updated French language file - thx JM GBT
|
||||
* Fix missing spaces now works better with italics - thx doc. Jackson
|
||||
* Added EBU alignment tags ({\an1}..{\an9})
|
||||
* Added "auto balance lines" to batch converter - thx hacker
|
||||
* Added "auto balance lines" to 'Batch convert' - thx hacker
|
||||
* Added scan folder + some mkv support to 'Batch convert'
|
||||
* Export to image based formats: bold tag support - thx moob
|
||||
* Updated French ocr replace list - thx Bruno
|
||||
* Fixed export to 3D Side-by-side to working 3D Half-side-by-side - thx r0lZ
|
||||
* FIXED:
|
||||
* After closing "SSA/ASS style designer", first style was applied
|
||||
to all lines - thx vicgol/Xabier/Mike
|
||||
@ -21,6 +25,7 @@
|
||||
* SSA/ASS - allow left margin up to 250 - thx vicgol
|
||||
* Allow key 'space' in list view to toggle play/pause of video - thx Jakov
|
||||
* Allow key 'space' in video fullscreen to toggle play/pause - thx fox
|
||||
* Fixed bug in 'Fix uppercase ‘i’ inside lowercase word' - thx Kurt
|
||||
|
||||
|
||||
3.3.2 (23 February 2013)
|
||||
|
73
src/Forms/ExportPngXml.Designer.cs
generated
73
src/Forms/ExportPngXml.Designer.cs
generated
@ -68,8 +68,8 @@
|
||||
this.colorDialog1 = new System.Windows.Forms.ColorDialog();
|
||||
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
|
||||
this.groupBoxExportImage = new System.Windows.Forms.GroupBox();
|
||||
this.subtitleListView1 = new Nikse.SubtitleEdit.Controls.SubtitleListView();
|
||||
this.timerPreview = new System.Windows.Forms.Timer(this.components);
|
||||
this.subtitleListView1 = new Nikse.SubtitleEdit.Controls.SubtitleListView();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.groupBoxImageSettings.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownDepth3D)).BeginInit();
|
||||
@ -91,7 +91,7 @@
|
||||
this.buttonExport.Location = new System.Drawing.Point(517, 566);
|
||||
this.buttonExport.Name = "buttonExport";
|
||||
this.buttonExport.Size = new System.Drawing.Size(126, 21);
|
||||
this.buttonExport.TabIndex = 5;
|
||||
this.buttonExport.TabIndex = 6;
|
||||
this.buttonExport.Text = "Export all lines...";
|
||||
this.buttonExport.UseVisualStyleBackColor = true;
|
||||
this.buttonExport.Click += new System.EventHandler(this.ButtonExportClick);
|
||||
@ -115,7 +115,7 @@
|
||||
this.progressBar1.Location = new System.Drawing.Point(12, 566);
|
||||
this.progressBar1.Name = "progressBar1";
|
||||
this.progressBar1.Size = new System.Drawing.Size(499, 21);
|
||||
this.progressBar1.TabIndex = 4;
|
||||
this.progressBar1.TabIndex = 5;
|
||||
this.progressBar1.Visible = false;
|
||||
//
|
||||
// groupBoxImageSettings
|
||||
@ -155,7 +155,7 @@
|
||||
this.groupBoxImageSettings.Location = new System.Drawing.Point(12, 218);
|
||||
this.groupBoxImageSettings.Name = "groupBoxImageSettings";
|
||||
this.groupBoxImageSettings.Size = new System.Drawing.Size(712, 161);
|
||||
this.groupBoxImageSettings.TabIndex = 2;
|
||||
this.groupBoxImageSettings.TabIndex = 3;
|
||||
this.groupBoxImageSettings.TabStop = false;
|
||||
this.groupBoxImageSettings.Text = "Image settings";
|
||||
//
|
||||
@ -165,7 +165,7 @@
|
||||
this.labelDepth.Location = new System.Drawing.Point(304, 137);
|
||||
this.labelDepth.Name = "labelDepth";
|
||||
this.labelDepth.Size = new System.Drawing.Size(36, 13);
|
||||
this.labelDepth.TabIndex = 37;
|
||||
this.labelDepth.TabIndex = 18;
|
||||
this.labelDepth.Text = "Depth";
|
||||
//
|
||||
// label3D
|
||||
@ -174,7 +174,7 @@
|
||||
this.label3D.Location = new System.Drawing.Point(273, 113);
|
||||
this.label3D.Name = "label3D";
|
||||
this.label3D.Size = new System.Drawing.Size(21, 13);
|
||||
this.label3D.TabIndex = 40;
|
||||
this.label3D.TabIndex = 16;
|
||||
this.label3D.Text = "3D";
|
||||
//
|
||||
// comboBox3D
|
||||
@ -184,7 +184,7 @@
|
||||
this.comboBox3D.Location = new System.Drawing.Point(298, 110);
|
||||
this.comboBox3D.Name = "comboBox3D";
|
||||
this.comboBox3D.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBox3D.TabIndex = 39;
|
||||
this.comboBox3D.TabIndex = 17;
|
||||
this.comboBox3D.SelectedIndexChanged += new System.EventHandler(this.comboBox3D_SelectedIndexChanged);
|
||||
//
|
||||
// numericUpDownDepth3D
|
||||
@ -197,7 +197,7 @@
|
||||
-2147483648});
|
||||
this.numericUpDownDepth3D.Name = "numericUpDownDepth3D";
|
||||
this.numericUpDownDepth3D.Size = new System.Drawing.Size(47, 20);
|
||||
this.numericUpDownDepth3D.TabIndex = 38;
|
||||
this.numericUpDownDepth3D.TabIndex = 19;
|
||||
this.numericUpDownDepth3D.ValueChanged += new System.EventHandler(this.numericUpDownDepth3D_ValueChanged);
|
||||
//
|
||||
// buttonCustomResolution
|
||||
@ -206,7 +206,7 @@
|
||||
this.buttonCustomResolution.Location = new System.Drawing.Point(224, 78);
|
||||
this.buttonCustomResolution.Name = "buttonCustomResolution";
|
||||
this.buttonCustomResolution.Size = new System.Drawing.Size(24, 21);
|
||||
this.buttonCustomResolution.TabIndex = 3;
|
||||
this.buttonCustomResolution.TabIndex = 6;
|
||||
this.buttonCustomResolution.Text = "...";
|
||||
this.buttonCustomResolution.UseVisualStyleBackColor = true;
|
||||
this.buttonCustomResolution.Click += new System.EventHandler(this.buttonCustomResolution_Click);
|
||||
@ -218,7 +218,7 @@
|
||||
this.comboBoxBottomMargin.Location = new System.Drawing.Point(100, 132);
|
||||
this.comboBoxBottomMargin.Name = "comboBoxBottomMargin";
|
||||
this.comboBoxBottomMargin.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBoxBottomMargin.TabIndex = 5;
|
||||
this.comboBoxBottomMargin.TabIndex = 10;
|
||||
this.comboBoxBottomMargin.SelectedIndexChanged += new System.EventHandler(this.comboBoxBottomMargin_SelectedIndexChanged);
|
||||
//
|
||||
// labelBottomMargin
|
||||
@ -227,7 +227,7 @@
|
||||
this.labelBottomMargin.Location = new System.Drawing.Point(10, 135);
|
||||
this.labelBottomMargin.Name = "labelBottomMargin";
|
||||
this.labelBottomMargin.Size = new System.Drawing.Size(74, 13);
|
||||
this.labelBottomMargin.TabIndex = 36;
|
||||
this.labelBottomMargin.TabIndex = 9;
|
||||
this.labelBottomMargin.Text = "Bottom margin";
|
||||
//
|
||||
// labelFrameRate
|
||||
@ -247,7 +247,7 @@
|
||||
this.comboBoxFramerate.Location = new System.Drawing.Point(537, 134);
|
||||
this.comboBoxFramerate.Name = "comboBoxFramerate";
|
||||
this.comboBoxFramerate.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBoxFramerate.TabIndex = 16;
|
||||
this.comboBoxFramerate.TabIndex = 25;
|
||||
//
|
||||
// labelLanguage
|
||||
//
|
||||
@ -274,7 +274,7 @@
|
||||
this.comboBoxLanguage.Location = new System.Drawing.Point(537, 105);
|
||||
this.comboBoxLanguage.Name = "comboBoxLanguage";
|
||||
this.comboBoxLanguage.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBoxLanguage.TabIndex = 15;
|
||||
this.comboBoxLanguage.TabIndex = 24;
|
||||
this.comboBoxLanguage.Visible = false;
|
||||
//
|
||||
// labelImageFormat
|
||||
@ -301,7 +301,7 @@
|
||||
this.comboBoxImageFormat.Location = new System.Drawing.Point(537, 78);
|
||||
this.comboBoxImageFormat.Name = "comboBoxImageFormat";
|
||||
this.comboBoxImageFormat.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBoxImageFormat.TabIndex = 14;
|
||||
this.comboBoxImageFormat.TabIndex = 23;
|
||||
//
|
||||
// checkBoxBold
|
||||
//
|
||||
@ -309,7 +309,7 @@
|
||||
this.checkBoxBold.Location = new System.Drawing.Point(276, 50);
|
||||
this.checkBoxBold.Name = "checkBoxBold";
|
||||
this.checkBoxBold.Size = new System.Drawing.Size(47, 17);
|
||||
this.checkBoxBold.TabIndex = 7;
|
||||
this.checkBoxBold.TabIndex = 13;
|
||||
this.checkBoxBold.Text = "Bold";
|
||||
this.checkBoxBold.UseVisualStyleBackColor = true;
|
||||
this.checkBoxBold.CheckedChanged += new System.EventHandler(this.checkBoxBold_CheckedChanged);
|
||||
@ -320,7 +320,7 @@
|
||||
this.labelResolution.Location = new System.Drawing.Point(10, 81);
|
||||
this.labelResolution.Name = "labelResolution";
|
||||
this.labelResolution.Size = new System.Drawing.Size(51, 13);
|
||||
this.labelResolution.TabIndex = 26;
|
||||
this.labelResolution.TabIndex = 4;
|
||||
this.labelResolution.Text = "Video res";
|
||||
//
|
||||
// comboBoxResolution
|
||||
@ -340,7 +340,7 @@
|
||||
this.comboBoxResolution.Location = new System.Drawing.Point(100, 78);
|
||||
this.comboBoxResolution.Name = "comboBoxResolution";
|
||||
this.comboBoxResolution.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBoxResolution.TabIndex = 2;
|
||||
this.comboBoxResolution.TabIndex = 5;
|
||||
this.comboBoxResolution.SelectedIndexChanged += new System.EventHandler(this.comboBoxResolution_SelectedIndexChanged);
|
||||
//
|
||||
// comboBoxHAlign
|
||||
@ -354,7 +354,7 @@
|
||||
this.comboBoxHAlign.Location = new System.Drawing.Point(100, 105);
|
||||
this.comboBoxHAlign.Name = "comboBoxHAlign";
|
||||
this.comboBoxHAlign.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBoxHAlign.TabIndex = 4;
|
||||
this.comboBoxHAlign.TabIndex = 8;
|
||||
this.comboBoxHAlign.SelectedIndexChanged += new System.EventHandler(this.comboBoxHAlign_SelectedIndexChanged);
|
||||
//
|
||||
// labelHorizontalAlign
|
||||
@ -363,7 +363,7 @@
|
||||
this.labelHorizontalAlign.Location = new System.Drawing.Point(10, 108);
|
||||
this.labelHorizontalAlign.Name = "labelHorizontalAlign";
|
||||
this.labelHorizontalAlign.Size = new System.Drawing.Size(30, 13);
|
||||
this.labelHorizontalAlign.TabIndex = 22;
|
||||
this.labelHorizontalAlign.TabIndex = 7;
|
||||
this.labelHorizontalAlign.Text = "Align";
|
||||
//
|
||||
// checkBoxAntiAlias
|
||||
@ -374,7 +374,7 @@
|
||||
this.checkBoxAntiAlias.Location = new System.Drawing.Point(276, 71);
|
||||
this.checkBoxAntiAlias.Name = "checkBoxAntiAlias";
|
||||
this.checkBoxAntiAlias.Size = new System.Drawing.Size(66, 17);
|
||||
this.checkBoxAntiAlias.TabIndex = 8;
|
||||
this.checkBoxAntiAlias.TabIndex = 14;
|
||||
this.checkBoxAntiAlias.Text = "AntiAlias";
|
||||
this.checkBoxAntiAlias.UseVisualStyleBackColor = true;
|
||||
this.checkBoxAntiAlias.CheckedChanged += new System.EventHandler(this.checkBoxAntiAlias_CheckedChanged);
|
||||
@ -385,7 +385,7 @@
|
||||
this.labelSubtitleFontSize.Location = new System.Drawing.Point(10, 54);
|
||||
this.labelSubtitleFontSize.Name = "labelSubtitleFontSize";
|
||||
this.labelSubtitleFontSize.Size = new System.Drawing.Size(84, 13);
|
||||
this.labelSubtitleFontSize.TabIndex = 20;
|
||||
this.labelSubtitleFontSize.TabIndex = 2;
|
||||
this.labelSubtitleFontSize.Text = "Subtitle font size";
|
||||
//
|
||||
// comboBoxSubtitleFont
|
||||
@ -395,7 +395,7 @@
|
||||
this.comboBoxSubtitleFont.Location = new System.Drawing.Point(100, 24);
|
||||
this.comboBoxSubtitleFont.Name = "comboBoxSubtitleFont";
|
||||
this.comboBoxSubtitleFont.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBoxSubtitleFont.TabIndex = 0;
|
||||
this.comboBoxSubtitleFont.TabIndex = 1;
|
||||
this.comboBoxSubtitleFont.SelectedValueChanged += new System.EventHandler(this.comboBoxSubtitleFont_SelectedValueChanged);
|
||||
//
|
||||
// comboBoxSubtitleFontSize
|
||||
@ -497,7 +497,7 @@
|
||||
this.comboBoxSubtitleFontSize.Location = new System.Drawing.Point(100, 51);
|
||||
this.comboBoxSubtitleFontSize.Name = "comboBoxSubtitleFontSize";
|
||||
this.comboBoxSubtitleFontSize.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBoxSubtitleFontSize.TabIndex = 1;
|
||||
this.comboBoxSubtitleFontSize.TabIndex = 3;
|
||||
this.comboBoxSubtitleFontSize.SelectedIndexChanged += new System.EventHandler(this.comboBoxSubtitleFontSize_SelectedIndexChanged);
|
||||
//
|
||||
// labelSubtitleFont
|
||||
@ -506,7 +506,7 @@
|
||||
this.labelSubtitleFont.Location = new System.Drawing.Point(10, 27);
|
||||
this.labelSubtitleFont.Name = "labelSubtitleFont";
|
||||
this.labelSubtitleFont.Size = new System.Drawing.Size(63, 13);
|
||||
this.labelSubtitleFont.TabIndex = 19;
|
||||
this.labelSubtitleFont.TabIndex = 0;
|
||||
this.labelSubtitleFont.Text = "Subtitle font";
|
||||
//
|
||||
// labelBorderWidth
|
||||
@ -543,7 +543,7 @@
|
||||
this.comboBoxBorderWidth.Location = new System.Drawing.Point(537, 51);
|
||||
this.comboBoxBorderWidth.Name = "comboBoxBorderWidth";
|
||||
this.comboBoxBorderWidth.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBoxBorderWidth.TabIndex = 13;
|
||||
this.comboBoxBorderWidth.TabIndex = 22;
|
||||
this.comboBoxBorderWidth.SelectedIndexChanged += new System.EventHandler(this.comboBoxBorderWidth_SelectedIndexChanged);
|
||||
//
|
||||
// panelBorderColor
|
||||
@ -552,7 +552,7 @@
|
||||
this.panelBorderColor.Location = new System.Drawing.Point(664, 25);
|
||||
this.panelBorderColor.Name = "panelBorderColor";
|
||||
this.panelBorderColor.Size = new System.Drawing.Size(21, 20);
|
||||
this.panelBorderColor.TabIndex = 12;
|
||||
this.panelBorderColor.TabIndex = 21;
|
||||
this.panelBorderColor.MouseClick += new System.Windows.Forms.MouseEventHandler(this.panelBorderColor_MouseClick);
|
||||
//
|
||||
// buttonBorderColor
|
||||
@ -560,7 +560,7 @@
|
||||
this.buttonBorderColor.Location = new System.Drawing.Point(537, 24);
|
||||
this.buttonBorderColor.Name = "buttonBorderColor";
|
||||
this.buttonBorderColor.Size = new System.Drawing.Size(121, 21);
|
||||
this.buttonBorderColor.TabIndex = 11;
|
||||
this.buttonBorderColor.TabIndex = 20;
|
||||
this.buttonBorderColor.Text = "Border color";
|
||||
this.buttonBorderColor.UseVisualStyleBackColor = true;
|
||||
this.buttonBorderColor.Click += new System.EventHandler(this.buttonBorderColor_Click);
|
||||
@ -571,7 +571,7 @@
|
||||
this.panelColor.Location = new System.Drawing.Point(403, 25);
|
||||
this.panelColor.Name = "panelColor";
|
||||
this.panelColor.Size = new System.Drawing.Size(21, 20);
|
||||
this.panelColor.TabIndex = 7;
|
||||
this.panelColor.TabIndex = 12;
|
||||
this.panelColor.MouseClick += new System.Windows.Forms.MouseEventHandler(this.panelColor_MouseClick);
|
||||
//
|
||||
// buttonColor
|
||||
@ -579,7 +579,7 @@
|
||||
this.buttonColor.Location = new System.Drawing.Point(276, 24);
|
||||
this.buttonColor.Name = "buttonColor";
|
||||
this.buttonColor.Size = new System.Drawing.Size(121, 21);
|
||||
this.buttonColor.TabIndex = 6;
|
||||
this.buttonColor.TabIndex = 11;
|
||||
this.buttonColor.Text = "Color";
|
||||
this.buttonColor.UseVisualStyleBackColor = true;
|
||||
this.buttonColor.Click += new System.EventHandler(this.buttonColor_Click);
|
||||
@ -592,7 +592,7 @@
|
||||
this.checkBoxSkipEmptyFrameAtStart.Location = new System.Drawing.Point(276, 92);
|
||||
this.checkBoxSkipEmptyFrameAtStart.Name = "checkBoxSkipEmptyFrameAtStart";
|
||||
this.checkBoxSkipEmptyFrameAtStart.Size = new System.Drawing.Size(147, 17);
|
||||
this.checkBoxSkipEmptyFrameAtStart.TabIndex = 10;
|
||||
this.checkBoxSkipEmptyFrameAtStart.TabIndex = 15;
|
||||
this.checkBoxSkipEmptyFrameAtStart.Text = "Skip empty frames at start";
|
||||
this.checkBoxSkipEmptyFrameAtStart.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@ -605,9 +605,14 @@
|
||||
this.groupBoxExportImage.Location = new System.Drawing.Point(13, 386);
|
||||
this.groupBoxExportImage.Name = "groupBoxExportImage";
|
||||
this.groupBoxExportImage.Size = new System.Drawing.Size(711, 174);
|
||||
this.groupBoxExportImage.TabIndex = 3;
|
||||
this.groupBoxExportImage.TabIndex = 1;
|
||||
this.groupBoxExportImage.TabStop = false;
|
||||
//
|
||||
// timerPreview
|
||||
//
|
||||
this.timerPreview.Interval = 500;
|
||||
this.timerPreview.Tick += new System.EventHandler(this.timerPreview_Tick);
|
||||
//
|
||||
// subtitleListView1
|
||||
//
|
||||
this.subtitleListView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
@ -627,11 +632,6 @@
|
||||
this.subtitleListView1.View = System.Windows.Forms.View.Details;
|
||||
this.subtitleListView1.SelectedIndexChanged += new System.EventHandler(this.subtitleListView1_SelectedIndexChanged);
|
||||
//
|
||||
// timerPreview
|
||||
//
|
||||
this.timerPreview.Interval = 500;
|
||||
this.timerPreview.Tick += new System.EventHandler(this.timerPreview_Tick);
|
||||
//
|
||||
// ExportPngXml
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
@ -648,6 +648,7 @@
|
||||
this.MinimumSize = new System.Drawing.Size(730, 630);
|
||||
this.Name = "ExportPngXml";
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "ExportPngXml";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ExportPngXml_FormClosing);
|
||||
|
44
src/Forms/ExtractDateTimeInfo.Designer.cs
generated
44
src/Forms/ExtractDateTimeInfo.Designer.cs
generated
@ -37,7 +37,7 @@
|
||||
this.labelWriteFormat = new System.Windows.Forms.Label();
|
||||
this.labelVideoFileName = new System.Windows.Forms.Label();
|
||||
this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.labelStartFrom = new System.Windows.Forms.Label();
|
||||
this.labelExample = new System.Windows.Forms.Label();
|
||||
this.textBoxExample = new System.Windows.Forms.TextBox();
|
||||
this.labelDuration = new System.Windows.Forms.Label();
|
||||
@ -67,7 +67,7 @@
|
||||
this.buttonCancel.Location = new System.Drawing.Point(269, 269);
|
||||
this.buttonCancel.Name = "buttonCancel";
|
||||
this.buttonCancel.Size = new System.Drawing.Size(75, 21);
|
||||
this.buttonCancel.TabIndex = 53;
|
||||
this.buttonCancel.TabIndex = 13;
|
||||
this.buttonCancel.Text = "C&ancel";
|
||||
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@ -78,7 +78,7 @@
|
||||
this.buttonOK.Location = new System.Drawing.Point(96, 269);
|
||||
this.buttonOK.Name = "buttonOK";
|
||||
this.buttonOK.Size = new System.Drawing.Size(167, 21);
|
||||
this.buttonOK.TabIndex = 52;
|
||||
this.buttonOK.TabIndex = 12;
|
||||
this.buttonOK.Text = "&Generate subtitle";
|
||||
this.buttonOK.UseVisualStyleBackColor = true;
|
||||
this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
|
||||
@ -89,7 +89,7 @@
|
||||
this.labelDescription.Location = new System.Drawing.Point(13, 13);
|
||||
this.labelDescription.Name = "labelDescription";
|
||||
this.labelDescription.Size = new System.Drawing.Size(226, 13);
|
||||
this.labelDescription.TabIndex = 54;
|
||||
this.labelDescription.TabIndex = 0;
|
||||
this.labelDescription.Text = "Choose video file to extract date/time info from";
|
||||
//
|
||||
// comboBoxDateTimeFormats
|
||||
@ -106,7 +106,7 @@
|
||||
this.comboBoxDateTimeFormats.Location = new System.Drawing.Point(12, 153);
|
||||
this.comboBoxDateTimeFormats.Name = "comboBoxDateTimeFormats";
|
||||
this.comboBoxDateTimeFormats.Size = new System.Drawing.Size(332, 21);
|
||||
this.comboBoxDateTimeFormats.TabIndex = 55;
|
||||
this.comboBoxDateTimeFormats.TabIndex = 9;
|
||||
this.comboBoxDateTimeFormats.SelectedIndexChanged += new System.EventHandler(this.comboBoxDateTimeFormats_SelectedIndexChanged);
|
||||
this.comboBoxDateTimeFormats.TextChanged += new System.EventHandler(this.comboBoxDateTimeFormats_TextChanged);
|
||||
//
|
||||
@ -116,7 +116,7 @@
|
||||
this.labelWriteFormat.Location = new System.Drawing.Point(12, 137);
|
||||
this.labelWriteFormat.Name = "labelWriteFormat";
|
||||
this.labelWriteFormat.Size = new System.Drawing.Size(143, 13);
|
||||
this.labelWriteFormat.TabIndex = 56;
|
||||
this.labelWriteFormat.TabIndex = 8;
|
||||
this.labelWriteFormat.Text = "Date/time format write format";
|
||||
//
|
||||
// labelVideoFileName
|
||||
@ -125,7 +125,7 @@
|
||||
this.labelVideoFileName.Location = new System.Drawing.Point(46, 34);
|
||||
this.labelVideoFileName.Name = "labelVideoFileName";
|
||||
this.labelVideoFileName.Size = new System.Drawing.Size(100, 13);
|
||||
this.labelVideoFileName.TabIndex = 57;
|
||||
this.labelVideoFileName.TabIndex = 2;
|
||||
this.labelVideoFileName.Text = "labelVideoFileName";
|
||||
//
|
||||
// dateTimePicker1
|
||||
@ -135,16 +135,16 @@
|
||||
this.dateTimePicker1.Location = new System.Drawing.Point(12, 87);
|
||||
this.dateTimePicker1.Name = "dateTimePicker1";
|
||||
this.dateTimePicker1.Size = new System.Drawing.Size(101, 20);
|
||||
this.dateTimePicker1.TabIndex = 58;
|
||||
this.dateTimePicker1.TabIndex = 4;
|
||||
//
|
||||
// label2
|
||||
// labelStartFrom
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(13, 71);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(52, 13);
|
||||
this.label2.TabIndex = 59;
|
||||
this.label2.Text = "Start from";
|
||||
this.labelStartFrom.AutoSize = true;
|
||||
this.labelStartFrom.Location = new System.Drawing.Point(13, 71);
|
||||
this.labelStartFrom.Name = "labelStartFrom";
|
||||
this.labelStartFrom.Size = new System.Drawing.Size(52, 13);
|
||||
this.labelStartFrom.TabIndex = 3;
|
||||
this.labelStartFrom.Text = "Start from";
|
||||
//
|
||||
// labelExample
|
||||
//
|
||||
@ -152,7 +152,7 @@
|
||||
this.labelExample.Location = new System.Drawing.Point(12, 188);
|
||||
this.labelExample.Name = "labelExample";
|
||||
this.labelExample.Size = new System.Drawing.Size(47, 13);
|
||||
this.labelExample.TabIndex = 61;
|
||||
this.labelExample.TabIndex = 10;
|
||||
this.labelExample.Text = "Example";
|
||||
//
|
||||
// textBoxExample
|
||||
@ -164,7 +164,7 @@
|
||||
this.textBoxExample.Multiline = true;
|
||||
this.textBoxExample.Name = "textBoxExample";
|
||||
this.textBoxExample.Size = new System.Drawing.Size(332, 53);
|
||||
this.textBoxExample.TabIndex = 62;
|
||||
this.textBoxExample.TabIndex = 11;
|
||||
//
|
||||
// labelDuration
|
||||
//
|
||||
@ -172,7 +172,7 @@
|
||||
this.labelDuration.Location = new System.Drawing.Point(249, 70);
|
||||
this.labelDuration.Name = "labelDuration";
|
||||
this.labelDuration.Size = new System.Drawing.Size(47, 13);
|
||||
this.labelDuration.TabIndex = 64;
|
||||
this.labelDuration.TabIndex = 6;
|
||||
this.labelDuration.Text = "Duration";
|
||||
//
|
||||
// timeUpDownDuration
|
||||
@ -183,7 +183,7 @@
|
||||
this.timeUpDownDuration.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.timeUpDownDuration.Name = "timeUpDownDuration";
|
||||
this.timeUpDownDuration.Size = new System.Drawing.Size(92, 24);
|
||||
this.timeUpDownDuration.TabIndex = 65;
|
||||
this.timeUpDownDuration.TabIndex = 7;
|
||||
//
|
||||
// timeUpDownStartTime
|
||||
//
|
||||
@ -193,7 +193,7 @@
|
||||
this.timeUpDownStartTime.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.timeUpDownStartTime.Name = "timeUpDownStartTime";
|
||||
this.timeUpDownStartTime.Size = new System.Drawing.Size(92, 24);
|
||||
this.timeUpDownStartTime.TabIndex = 63;
|
||||
this.timeUpDownStartTime.TabIndex = 5;
|
||||
//
|
||||
// ExtractDateTimeInfo
|
||||
//
|
||||
@ -205,7 +205,7 @@
|
||||
this.Controls.Add(this.timeUpDownStartTime);
|
||||
this.Controls.Add(this.textBoxExample);
|
||||
this.Controls.Add(this.labelExample);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.labelStartFrom);
|
||||
this.Controls.Add(this.dateTimePicker1);
|
||||
this.Controls.Add(this.labelVideoFileName);
|
||||
this.Controls.Add(this.labelWriteFormat);
|
||||
@ -240,7 +240,7 @@
|
||||
private System.Windows.Forms.Label labelWriteFormat;
|
||||
private System.Windows.Forms.Label labelVideoFileName;
|
||||
private System.Windows.Forms.DateTimePicker dateTimePicker1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label labelStartFrom;
|
||||
private System.Windows.Forms.Label labelExample;
|
||||
private System.Windows.Forms.TextBox textBoxExample;
|
||||
private Controls.TimeUpDown timeUpDownStartTime;
|
||||
|
@ -21,6 +21,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
timeUpDownStartTime.TimeCode = new TimeCode(0, 0, 0, 0);
|
||||
timeUpDownDuration.TimeCode = new TimeCode(1, 0, 0, 0);
|
||||
comboBoxDateTimeFormats.Items.Clear();
|
||||
buttonCancel.Text = Configuration.Settings.Language.General.Cancel;
|
||||
foreach (string format in Configuration.Settings.Tools.GenerateTimeCodePatterns.Split(';'))
|
||||
{
|
||||
_formats.Add(format);
|
||||
@ -28,6 +29,18 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
if (_formats.Count > 0)
|
||||
comboBoxDateTimeFormats.SelectedIndex = 0;
|
||||
|
||||
var l = Configuration.Settings.Language.ExtractDateTimeInfo;
|
||||
if (!string.IsNullOrEmpty(l.Title)) // Remove in SE 3.4
|
||||
{
|
||||
Text = l.Title;
|
||||
labelDescription.Text = l.Description;
|
||||
labelStartFrom.Text = l.StartFrom;
|
||||
labelDuration.Text = Configuration.Settings.Language.General.Duration;
|
||||
labelExample.Text = l.Example;
|
||||
buttonOK.Text = l.GenerateSubtitle;
|
||||
labelWriteFormat.Text = l.DateTimeFormat;
|
||||
}
|
||||
}
|
||||
|
||||
private string DecodeFormat(DateTime dateTime, string format)
|
||||
@ -35,7 +48,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
try
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
foreach (string s in format.Replace("<br />", "@").Replace("<BR />", "@").Replace("<br/>", "@").Replace("<BR/>", "@").Replace("<br>", "@").Replace("<BR>", "@").Split('@'))
|
||||
foreach (string s in format.Replace("<br />", "|").Replace("<BR />", "|").Replace("<br/>", "|").Replace("<BR/>", "|").Replace("<br>", "|").Replace("<BR>", "|").Split('|'))
|
||||
{
|
||||
sb.AppendLine(dateTime.ToString(s));
|
||||
}
|
||||
|
@ -1477,6 +1477,8 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
toolStripMenuItemShowOriginalInPreview.Text = _language.Menu.Edit.ShowOriginalTextInAudioAndVideoPreview;
|
||||
toolStripMenuItemMakeEmptyFromCurrent.Text = _language.Menu.Tools.MakeNewEmptyTranslationFromCurrentSubtitle;
|
||||
toolStripMenuItemBatchConvert.Text = _language.Menu.Tools.BatchConvert;
|
||||
if (!string.IsNullOrEmpty(_language.Menu.Tools.GenerateTimeAsText)) //TODO: Fix in SE 3.4
|
||||
generateDatetimeInfoFromVideoToolStripMenuItem.Text = _language.Menu.Tools.GenerateTimeAsText;
|
||||
splitToolStripMenuItem.Text = _language.Menu.Tools.SplitSubtitle;
|
||||
appendTextVisuallyToolStripMenuItem.Text = _language.Menu.Tools.AppendSubtitle;
|
||||
joinSubtitlesToolStripMenuItem.Text = _language.Menu.Tools.JoinSubtitles;
|
||||
|
@ -681,7 +681,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAAfgBHQH4AR0BEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAAQgBHgEIAR4BEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
|
2
src/Forms/ModifySelection.Designer.cs
generated
2
src/Forms/ModifySelection.Designer.cs
generated
@ -227,7 +227,7 @@
|
||||
// columnHeaderApply
|
||||
//
|
||||
this.columnHeaderApply.Text = "Apply";
|
||||
this.columnHeaderApply.Width = 45;
|
||||
this.columnHeaderApply.Width = 50;
|
||||
//
|
||||
// columnHeaderLine
|
||||
//
|
||||
|
@ -26,6 +26,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
buttonCancel.Text = Configuration.Settings.Language.General.Cancel;
|
||||
buttonApply.Text = Configuration.Settings.Language.General.Apply;
|
||||
groupBoxRule.Text = Configuration.Settings.Language.ModifySelection.Rule;
|
||||
groupBoxWhatToDo.Text = Configuration.Settings.Language.ModifySelection.DoWithMatches;
|
||||
checkBoxCaseSensitive.Text = Configuration.Settings.Language.ModifySelection.CaseSensitive;
|
||||
radioButtonNewSelection.Text = Configuration.Settings.Language.ModifySelection.MakeNewSelection;
|
||||
radioButtonAddToSelection.Text = Configuration.Settings.Language.ModifySelection.AddToCurrentSelection;
|
||||
@ -37,6 +38,16 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
|
||||
FixLargeFonts();
|
||||
|
||||
if (!string.IsNullOrEmpty(Configuration.Settings.Language.ModifySelection.Contains)) //TODO: Remove in SE 3.4
|
||||
{
|
||||
comboBoxRule.Items.Clear();
|
||||
comboBoxRule.Items.Add(Configuration.Settings.Language.ModifySelection.Contains);
|
||||
comboBoxRule.Items.Add(Configuration.Settings.Language.ModifySelection.StartsWith);
|
||||
comboBoxRule.Items.Add(Configuration.Settings.Language.ModifySelection.EndsWith);
|
||||
comboBoxRule.Items.Add(Configuration.Settings.Language.ModifySelection.NoContains);
|
||||
comboBoxRule.Items.Add(Configuration.Settings.Language.ModifySelection.RegEx);
|
||||
}
|
||||
|
||||
checkBoxCaseSensitive.Checked = Configuration.Settings.Tools.ModifySelectionCaseSensitive;
|
||||
textBox1.Text = Configuration.Settings.Tools.ModifySelectionText;
|
||||
if (Configuration.Settings.Tools.ModifySelectionRule == "Starts with")
|
||||
@ -47,6 +58,8 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
comboBoxRule.SelectedIndex = 3;
|
||||
else if (Configuration.Settings.Tools.ModifySelectionRule == "RegEx")
|
||||
comboBoxRule.SelectedIndex = 4;
|
||||
else
|
||||
comboBoxRule.SelectedIndex = 0;
|
||||
_loading = false;
|
||||
Preview();
|
||||
}
|
||||
@ -169,7 +182,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
if (!string.IsNullOrEmpty(Configuration.Settings.Language.ModifySelection.MatchingLinesX))
|
||||
groupBoxPreview.Text = string.Format(Configuration.Settings.Language.ModifySelection.MatchingLinesX, listViewFixes.Items.Count);
|
||||
else
|
||||
groupBoxPreview.Text = string.Format("Matching lines: {0}", listViewFixes.Items.Count);
|
||||
groupBoxPreview.Text = string.Format("Matching lines: {0}", listViewFixes.Items.Count); //TODO: Remove in 3.4
|
||||
}
|
||||
|
||||
private void ApplySelection()
|
||||
|
@ -242,7 +242,8 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
comboBoxOcrMethod.Items.Add(language.OcrViaTesseract);
|
||||
comboBoxOcrMethod.Items.Add(language.OcrViaImageCompare);
|
||||
comboBoxOcrMethod.Items.Add(language.OcrViaModi);
|
||||
comboBoxOcrMethod.Items.Add(language.OcrViaNOCR);
|
||||
if (!string.IsNullOrEmpty(language.OcrViaNOCR) && Configuration.Settings.General.ShowBetaStuff)
|
||||
comboBoxOcrMethod.Items.Add(language.OcrViaNOCR);
|
||||
|
||||
checkBoxUseModiInTesseractForUnknownWords.Text = language.TryModiForUnknownWords;
|
||||
checkBoxTesseractItalicsOn.Checked = Configuration.Settings.VobSubOcr.UseItalicsInTesseract;
|
||||
@ -1170,21 +1171,59 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
return new Point((int)Math.Round(p.X + (height - p.Y) * _unItalicFactor), p.Y);
|
||||
}
|
||||
|
||||
private string NOcrFindBestMatch(Bitmap bmp, out bool italic)
|
||||
private string NOcrFindBestMatch(Bitmap bmp, int topMargin, out bool italic)
|
||||
{
|
||||
italic = false;
|
||||
|
||||
var nbmp = new NikseBitmap(bmp);
|
||||
//nbmp.EraseColorTop(3);
|
||||
//nbmp.EraseColorBottom(3);
|
||||
//nbmp.CropTop(3, Color.Transparent);
|
||||
//nbmp.CropSidesAndBottom(3, Color.Transparent);
|
||||
foreach (NOcrChar oc in _nocrChars)
|
||||
{
|
||||
if (Math.Abs(oc.Width - nbmp.Width) < 3 && Math.Abs(oc.Height - nbmp.Height) < 3 && Math.Abs(oc.MarginTop - topMargin) < 3)
|
||||
{
|
||||
bool ok = true;
|
||||
foreach (NOcrPoint op in oc.LinesForeground)
|
||||
{
|
||||
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
{
|
||||
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
{
|
||||
Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (NOcrPoint op in oc.LinesBackground)
|
||||
{
|
||||
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
{
|
||||
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
{
|
||||
Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
{
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
return oc.Text;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//var nbmp = bmp;
|
||||
double widthPercent = nbmp.Height * 100.0 / nbmp.Width;
|
||||
foreach (NOcrChar oc in _nocrChars)
|
||||
{
|
||||
if (Math.Abs(oc.WidthPercent - widthPercent) < 30)
|
||||
if (Math.Abs(oc.WidthPercent - widthPercent) < 10 && nbmp.Width > 25 && nbmp.Height > 20 && Math.Abs(oc.MarginTop - topMargin) < nbmp.Height / 5)
|
||||
{
|
||||
bool ok = true;
|
||||
foreach (NOcrPoint op in oc.LinesForeground)
|
||||
@ -1225,60 +1264,16 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
}
|
||||
|
||||
foreach (NOcrChar oc in _nocrChars)
|
||||
{
|
||||
var w = Math.Abs(oc.WidthPercent - widthPercent);
|
||||
if (w >= 30 && w < 80)
|
||||
{
|
||||
bool ok = true;
|
||||
foreach (NOcrPoint op in oc.LinesForeground)
|
||||
{
|
||||
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
{
|
||||
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
{
|
||||
Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (NOcrPoint op in oc.LinesBackground)
|
||||
{
|
||||
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
{
|
||||
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
{
|
||||
Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
{
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
return oc.Text;
|
||||
}
|
||||
}
|
||||
|
||||
if (checkBoxNOcrItalic.Checked)
|
||||
if (!checkBoxNOcrCorrect.Checked)
|
||||
{
|
||||
foreach (NOcrChar oc in _nocrChars)
|
||||
{
|
||||
if (Math.Abs(oc.WidthPercent - widthPercent) < 99)
|
||||
if (Math.Abs(oc.WidthPercent - widthPercent) < 40 && nbmp.Width > 20 && nbmp.Height > 10 && Math.Abs(oc.MarginTop - topMargin) < 10)
|
||||
{
|
||||
bool ok = true;
|
||||
foreach (NOcrPoint op in oc.LinesForeground)
|
||||
{
|
||||
foreach (Point point in NOcrPoint.GetPoints(MakePointItalic(op.Start, bmp.Height), MakePointItalic(op.End, bmp.Height)))
|
||||
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
{
|
||||
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
{
|
||||
@ -1296,7 +1291,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
foreach (NOcrPoint op in oc.LinesBackground)
|
||||
{
|
||||
foreach (Point point in NOcrPoint.GetPoints(MakePointItalic(op.Start, bmp.Height), MakePointItalic(op.End, bmp.Height)))
|
||||
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
{
|
||||
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
{
|
||||
@ -1310,38 +1305,23 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
{
|
||||
italic = true;
|
||||
return oc.Text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var unItalicedBmp = UnItalic(bmp, _unItalicFactor);
|
||||
nbmp = new NikseBitmap(unItalicedBmp);
|
||||
unItalicedBmp.Dispose();
|
||||
nbmp.CropTop(5, Color.Transparent);
|
||||
nbmp.CropTransparentSidesAndBottom(0, true);
|
||||
|
||||
//NikseBitmap nbmp = new NikseBitmap(bmp);
|
||||
// nbmp = unItalicedBmp;
|
||||
//TODO:SOme cropping!!!!
|
||||
|
||||
|
||||
|
||||
foreach (NOcrChar oc in _nocrChars)
|
||||
{
|
||||
if (Math.Abs(oc.WidthPercent - widthPercent) < 99)
|
||||
if (Math.Abs(oc.WidthPercent - widthPercent) < 40 && nbmp.Width > 20 && nbmp.Height > 10 && Math.Abs(oc.MarginTop - topMargin) < 10)
|
||||
{
|
||||
bool ok = true;
|
||||
foreach (NOcrPoint op in oc.LinesForeground)
|
||||
{
|
||||
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
foreach (Point point in op.GetPoints(nbmp.Width-3, nbmp.Height))
|
||||
{
|
||||
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
{
|
||||
Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
if (c.A > 100 && c.R > 90 && c.G > 90 && c.B > 90)
|
||||
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
{
|
||||
}
|
||||
else
|
||||
@ -1354,12 +1334,12 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
foreach (NOcrPoint op in oc.LinesBackground)
|
||||
{
|
||||
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
foreach (Point point in op.GetPoints(nbmp.Width-3, nbmp.Height))
|
||||
{
|
||||
if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
{
|
||||
Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
if (c.A > 140 && c.R > 120 && c.G > 120 && c.B > 120)
|
||||
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
{
|
||||
ok = false;
|
||||
break;
|
||||
@ -1368,23 +1348,59 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
{
|
||||
italic = true;
|
||||
return oc.Text;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (NOcrChar oc in _nocrChars)
|
||||
{
|
||||
if (Math.Abs(oc.WidthPercent - widthPercent) < 40 && nbmp.Width > 20 && nbmp.Height > 10 && Math.Abs(oc.MarginTop - topMargin) < 10)
|
||||
{
|
||||
bool ok = true;
|
||||
foreach (NOcrPoint op in oc.LinesForeground)
|
||||
{
|
||||
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height-4))
|
||||
{
|
||||
if (point.X >= 0 && point.Y+4 >= 0 && point.X < nbmp.Width && point.Y+4 < nbmp.Height)
|
||||
{
|
||||
Color c = nbmp.GetPixel(point.X, point.Y+4);
|
||||
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (NOcrPoint op in oc.LinesBackground)
|
||||
{
|
||||
foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height-4))
|
||||
{
|
||||
if (point.X >= 0 && point.Y+4 >= 0 && point.X < nbmp.Width && point.Y+4 < nbmp.Height)
|
||||
{
|
||||
Color c = nbmp.GetPixel(point.X, point.Y+4);
|
||||
if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
{
|
||||
ok = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
return oc.Text;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// crop top / bottom - do this before all?
|
||||
//nbmp.EraseColorTop(3);
|
||||
//nbmp.EraseColorBottom(3);
|
||||
//nbmp.CropTransparentSidesAndBottom(3);
|
||||
//foreach (NOcrChar oc in _nocrChars)
|
||||
//{
|
||||
// if (Math.Abs(oc.Width - widthPercent) < 90)
|
||||
// var w = Math.Abs(oc.WidthPercent - widthPercent);
|
||||
// if (w >= 30 && w < 80)
|
||||
// {
|
||||
// bool ok = true;
|
||||
// foreach (NOcrPoint op in oc.LinesForeground)
|
||||
@ -1425,6 +1441,162 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
// }
|
||||
//}
|
||||
|
||||
//if (checkBoxNOcrItalic.Checked)
|
||||
//{
|
||||
// foreach (NOcrChar oc in _nocrChars)
|
||||
// {
|
||||
// if (Math.Abs(oc.WidthPercent - widthPercent) < 99)
|
||||
// {
|
||||
// bool ok = true;
|
||||
// foreach (NOcrPoint op in oc.LinesForeground)
|
||||
// {
|
||||
// foreach (Point point in NOcrPoint.GetPoints(MakePointItalic(op.Start, bmp.Height), MakePointItalic(op.End, bmp.Height)))
|
||||
// {
|
||||
// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
// {
|
||||
// Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
// if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
// {
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// ok = false;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// foreach (NOcrPoint op in oc.LinesBackground)
|
||||
// {
|
||||
// foreach (Point point in NOcrPoint.GetPoints(MakePointItalic(op.Start, bmp.Height), MakePointItalic(op.End, bmp.Height)))
|
||||
// {
|
||||
// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
// {
|
||||
// Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
// if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
// {
|
||||
// ok = false;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (ok)
|
||||
// {
|
||||
// italic = true;
|
||||
// return oc.Text;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// var unItalicedBmp = UnItalic(bmp, _unItalicFactor);
|
||||
// nbmp = new NikseBitmap(unItalicedBmp);
|
||||
// unItalicedBmp.Dispose();
|
||||
// nbmp.CropTop(5, Color.Transparent);
|
||||
// nbmp.CropTransparentSidesAndBottom(0, true);
|
||||
|
||||
// //NikseBitmap nbmp = new NikseBitmap(bmp);
|
||||
// // nbmp = unItalicedBmp;
|
||||
////TODO:SOme cropping!!!!
|
||||
|
||||
|
||||
// foreach (NOcrChar oc in _nocrChars)
|
||||
// {
|
||||
// if (Math.Abs(oc.WidthPercent - widthPercent) < 99)
|
||||
// {
|
||||
// bool ok = true;
|
||||
// foreach (NOcrPoint op in oc.LinesForeground)
|
||||
// {
|
||||
// foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
// {
|
||||
// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
// {
|
||||
// Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
// if (c.A > 100 && c.R > 90 && c.G > 90 && c.B > 90)
|
||||
// {
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// ok = false;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// foreach (NOcrPoint op in oc.LinesBackground)
|
||||
// {
|
||||
// foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
// {
|
||||
// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
// {
|
||||
// Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
// if (c.A > 140 && c.R > 120 && c.G > 120 && c.B > 120)
|
||||
// {
|
||||
// ok = false;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (ok)
|
||||
// {
|
||||
// italic = true;
|
||||
// return oc.Text;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
//}
|
||||
|
||||
|
||||
//// crop top / bottom - do this before all?
|
||||
////nbmp.EraseColorTop(3);
|
||||
////nbmp.EraseColorBottom(3);
|
||||
////nbmp.CropTransparentSidesAndBottom(3);
|
||||
////foreach (NOcrChar oc in _nocrChars)
|
||||
////{
|
||||
//// if (Math.Abs(oc.Width - widthPercent) < 90)
|
||||
//// {
|
||||
//// bool ok = true;
|
||||
//// foreach (NOcrPoint op in oc.LinesForeground)
|
||||
//// {
|
||||
//// foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
//// {
|
||||
//// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
//// {
|
||||
//// Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
//// if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
//// {
|
||||
//// }
|
||||
//// else
|
||||
//// {
|
||||
//// ok = false;
|
||||
//// break;
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
//// foreach (NOcrPoint op in oc.LinesBackground)
|
||||
//// {
|
||||
//// foreach (Point point in op.GetPoints(nbmp.Width, nbmp.Height))
|
||||
//// {
|
||||
//// if (point.X >= 0 && point.Y >= 0 && point.X < nbmp.Width && point.Y < nbmp.Height)
|
||||
//// {
|
||||
//// Color c = nbmp.GetPixel(point.X, point.Y);
|
||||
//// if (c.A > 150 && c.R > 100 && c.G > 100 && c.B > 100)
|
||||
//// {
|
||||
//// ok = false;
|
||||
//// break;
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
//// if (ok)
|
||||
//// return oc.Text;
|
||||
//// }
|
||||
////}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
@ -1433,7 +1605,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
{
|
||||
secondBestGuess = null;
|
||||
bool italic;
|
||||
var result = NOcrFindBestMatch(targetItem.Bitmap, out italic);
|
||||
var result = NOcrFindBestMatch(targetItem.Bitmap, targetItem.Y, out italic);
|
||||
if (result == null)
|
||||
{
|
||||
if (checkBoxNOcrCorrect.Checked)
|
||||
@ -2141,7 +2313,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
{
|
||||
nbmp = new NikseBitmap(item.Bitmap);
|
||||
nbmp.ReplaceNonWhiteWithTransparent();
|
||||
nbmp.CropTopTransparent(0);
|
||||
item.Y += nbmp.CropTopTransparent(0);
|
||||
nbmp.CropTransparentSidesAndBottom(0, true);
|
||||
nbmp.ReplaceTransparentWith(Color.Black);
|
||||
item.Bitmap = nbmp.GetBitmap();
|
||||
|
@ -158,6 +158,7 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
|
||||
<ScanFolder>Scan mappe...</ScanFolder>
|
||||
<ScanningFolder>Scanner {0} og undermapper for undertekster...</ScanningFolder>
|
||||
<Recursive>Medtag undermapper</Recursive>
|
||||
<SetMinMsBetweenSubtitles>Indstil min. msek mellem undertekster</SetMinMsBetweenSubtitles>
|
||||
</BatchConvert>
|
||||
<Beamer>
|
||||
<Title>Undertekst fremviser</Title>
|
||||
@ -320,7 +321,10 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
|
||||
<BorderWidth>Kantbredde</BorderWidth>
|
||||
<ImageFormat>Billed format</ImageFormat>
|
||||
<AntiAlias>Anti alias</AntiAlias>
|
||||
<SideBySide3D>Side-by-side 3D</SideBySide3D>
|
||||
<Text3D>3D</Text3D>
|
||||
<SideBySide3D>Half-Side-by-side</SideBySide3D>
|
||||
<HalfTopBottom3D>Half-Top/Bottom</HalfTopBottom3D>
|
||||
<Depth>Dybde</Depth>
|
||||
<ExportAllLines>Eksporter alle linjer...</ExportAllLines>
|
||||
<XImagesSavedInY>{0} billeder gemt i {1}</XImagesSavedInY>
|
||||
<VideoResolution>Video str</VideoResolution>
|
||||
@ -333,6 +337,8 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
|
||||
<SaveVobSubAs>Vælg VobSub filnavn</SaveVobSubAs>
|
||||
<SaveFabImageScriptAs>Vælg Blu-ray sup filnavn</SaveFabImageScriptAs>
|
||||
<SaveDvdStudioProStlAs>Vælg DVD Studio Pro STL filnavn</SaveDvdStudioProStlAs>
|
||||
<SomeLinesWereTooLongX>Nogle linjer var for lange:
|
||||
{0}</SomeLinesWereTooLongX>
|
||||
</ExportPngXml>
|
||||
<ExportText>
|
||||
<Title>Eksport tekst</Title>
|
||||
@ -355,6 +361,14 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
|
||||
<HHMMSSFF>HH:MM:SS:FF</HHMMSSFF>
|
||||
<TimeCodeSeperator>Tidskode skille-tegn</TimeCodeSeperator>
|
||||
</ExportText>
|
||||
<ExtractDateTimeInfo>
|
||||
<Title>Generer tid som tekst</Title>
|
||||
<Description>Beskrivelse</Description>
|
||||
<StartFrom>Start fra</StartFrom>
|
||||
<DateTimeFormat>Dato/tid format</DateTimeFormat>
|
||||
<Example>Eksempel</Example>
|
||||
<GenerateSubtitle>&Generer undertekst</GenerateSubtitle>
|
||||
</ExtractDateTimeInfo>
|
||||
<FindDialog>
|
||||
<Title>Find</Title>
|
||||
<Find>Find</Find>
|
||||
@ -583,6 +597,7 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
|
||||
<ImportOcrFromDvd>Import/OCR undertekster fra VOB/IFO (dvd) ...</ImportOcrFromDvd>
|
||||
<ImportOcrVobSubSubtitle>Importer/OCR VobSub (sub/idx) undertekst...</ImportOcrVobSubSubtitle>
|
||||
<ImportBluRaySupFile>Importer/OCR Blu-ray sup fil...</ImportBluRaySupFile>
|
||||
<ImportXSub>Importer/OCR xsub fra divx/avi...</ImportXSub>
|
||||
<ImportSubtitleFromMatroskaFile>Importer undertekster fra Matroska fil...</ImportSubtitleFromMatroskaFile>
|
||||
<ImportSubtitleWithManualChosenEncoding>Importer undertekst med manuel valgt tegnsæt...</ImportSubtitleWithManualChosenEncoding>
|
||||
<ImportText>Importer tekst...</ImportText>
|
||||
@ -649,6 +664,7 @@ E-mail: mailto:nikse.dk@gmail.com</AboutText1>
|
||||
<WordsPerMinute>Tekst - ord i minuttet (WPM)</WordsPerMinute>
|
||||
<MakeNewEmptyTranslationFromCurrentSubtitle>Dan ny tom oversættelse fra aktuelle undertekst</MakeNewEmptyTranslationFromCurrentSubtitle>
|
||||
<BatchConvert>Batch konverter...</BatchConvert>
|
||||
<GenerateTimeAsText>Generer tid som tekst...</GenerateTimeAsText>
|
||||
<SplitSubtitle>Split undertekst...</SplitSubtitle>
|
||||
<AppendSubtitle>Tilføj/append undertekst...</AppendSubtitle>
|
||||
<JoinSubtitles>Flet undertekster...</JoinSubtitles>
|
||||
@ -1097,6 +1113,11 @@ Fortsæt?</SubtitleAppendPrompt>
|
||||
<SubtractFromCurrentSelection>Subtraher fra aktuelle markering</SubtractFromCurrentSelection>
|
||||
<IntersectWithCurrentSelection>Intersect med aktuelle markering</IntersectWithCurrentSelection>
|
||||
<MatchingLinesX>Matchende linjer: {0}</MatchingLinesX>
|
||||
<Contains>Indeholder</Contains>
|
||||
<StartsWith>Starter med</StartsWith>
|
||||
<EndsWith>Ender med</EndsWith>
|
||||
<NoContains>Indeholder ikke</NoContains>
|
||||
<RegEx>Regulært udtryk</RegEx>
|
||||
</ModifySelection>
|
||||
<MultipleReplace>
|
||||
<Title>Multi søg og erstat</Title>
|
||||
|
@ -38,6 +38,7 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
public LanguageStructure.EffectTypewriter EffectTypewriter;
|
||||
public LanguageStructure.ExportPngXml ExportPngXml;
|
||||
public LanguageStructure.ExportText ExportText;
|
||||
public LanguageStructure.ExtractDateTimeInfo ExtractDateTimeInfo;
|
||||
public LanguageStructure.FindDialog FindDialog;
|
||||
public LanguageStructure.FindSubtitleLine FindSubtitleLine;
|
||||
public LanguageStructure.FixCommonErrors FixCommonErrors;
|
||||
@ -506,6 +507,16 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
TimeCodeSeperator = "Time code seperator",
|
||||
};
|
||||
|
||||
ExtractDateTimeInfo = new LanguageStructure.ExtractDateTimeInfo
|
||||
{
|
||||
Title = "Generate time as text",
|
||||
Description = "",
|
||||
StartFrom = "Start from",
|
||||
DateTimeFormat = "Date/time format",
|
||||
Example = "Example",
|
||||
GenerateSubtitle = "&Generate subtitle",
|
||||
};
|
||||
|
||||
FindDialog = new LanguageStructure.FindDialog
|
||||
{
|
||||
Title = "Find",
|
||||
@ -1068,6 +1079,7 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
WordsPerMinute = "Text - words per minute (wpm)",
|
||||
MakeNewEmptyTranslationFromCurrentSubtitle = "Make new empty translation from current subtitle",
|
||||
BatchConvert = "Batch convert...",
|
||||
GenerateTimeAsText = "Generate time as text...",
|
||||
SplitSubtitle = "Split subtitle...",
|
||||
AppendSubtitle = "Append subtitle...",
|
||||
JoinSubtitles = "Join subtitles...",
|
||||
@ -1314,6 +1326,11 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
SubtractFromCurrentSelection = "Subtract from current selection",
|
||||
IntersectWithCurrentSelection = "Intersect with current selection",
|
||||
MatchingLinesX = "Matching lines: {0}",
|
||||
Contains = "Contains",
|
||||
StartsWith = "Starts with",
|
||||
EndsWith = "Ends with",
|
||||
NoContains = "Not contains",
|
||||
RegEx = "Regular expression",
|
||||
};
|
||||
|
||||
MultipleReplace = new LanguageStructure.MultipleReplace
|
||||
|
@ -407,6 +407,16 @@
|
||||
public string TimeCodeSeperator { get; set; }
|
||||
}
|
||||
|
||||
public class ExtractDateTimeInfo
|
||||
{
|
||||
public string Title { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string StartFrom { get; set; }
|
||||
public string DateTimeFormat { get; set; }
|
||||
public string Example { get; set; }
|
||||
public string GenerateSubtitle { get; set; }
|
||||
}
|
||||
|
||||
public class FindDialog
|
||||
{
|
||||
public string Title { get; set; }
|
||||
@ -963,6 +973,7 @@
|
||||
public string WordsPerMinute { get; set; }
|
||||
public string MakeNewEmptyTranslationFromCurrentSubtitle { get; set; }
|
||||
public string BatchConvert { get; set; }
|
||||
public string GenerateTimeAsText { get; set; }
|
||||
public string SplitSubtitle { get; set; }
|
||||
public string AppendSubtitle { get; set; }
|
||||
public string JoinSubtitles { get; set; }
|
||||
@ -1221,6 +1232,11 @@
|
||||
public string SubtractFromCurrentSelection { get; set; }
|
||||
public string IntersectWithCurrentSelection { get; set; }
|
||||
public string MatchingLinesX { get; set; }
|
||||
public string Contains { get; set; }
|
||||
public string StartsWith { get; set; }
|
||||
public string EndsWith { get; set; }
|
||||
public string NoContains { get; set; }
|
||||
public string RegEx { get; set; }
|
||||
}
|
||||
|
||||
public class MultipleReplace
|
||||
|
@ -631,7 +631,7 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
_bitmapData = newBitmapData;
|
||||
}
|
||||
|
||||
public void CropTopTransparent(int maximumCropping)
|
||||
public int CropTopTransparent(int maximumCropping)
|
||||
{
|
||||
bool done = false;
|
||||
int newTop = 0;
|
||||
@ -656,7 +656,7 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
}
|
||||
|
||||
if (newTop == 0)
|
||||
return;
|
||||
return 0;
|
||||
|
||||
int newHeight = Height - newTop;
|
||||
var newBitmapData = new byte[Width * newHeight * 4];
|
||||
@ -669,6 +669,7 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
}
|
||||
Height = newHeight;
|
||||
_bitmapData = newBitmapData;
|
||||
return newTop;
|
||||
}
|
||||
|
||||
public void Fill(Color color)
|
||||
|
Loading…
Reference in New Issue
Block a user