private Bitmap GenerateImageFromTextWithStyle(Paragraph p, out MakeBitmapParameter mbp) { mbp = new MakeBitmapParameter(); mbp.P = p; if (_vobSubOcr != null) { var index = _subtitle.GetIndex(p); if (index >= 0) return _vobSubOcr.GetSubtitleBitmap(index); } mbp.AlignLeft = comboBoxHAlign.SelectedIndex == 0; mbp.AlignRight = comboBoxHAlign.SelectedIndex == 2; mbp.SimpleRendering = checkBoxSimpleRender.Checked; mbp.BorderWidth = _borderWidth; mbp.BorderColor = _borderColor; mbp.SubtitleFontName = _subtitleFontName; mbp.SubtitleColor = _subtitleColor; mbp.SubtitleFontSize = _subtitleFontSize; mbp.SubtitleFontBold = _subtitleFontBold; mbp.LineHeight = (int) numericUpDownLineSpacing.Value; if (_format.HasStyleSupport && !string.IsNullOrEmpty(p.Extra)) { if (_format.GetType() == typeof(SubStationAlpha)) { var style = AdvancedSubStationAlpha.GetSsaStyle(p.Extra, _subtitle.Header); mbp.SubtitleColor = style.Primary; mbp.SubtitleFontBold = style.Bold; mbp.SubtitleFontSize = style.FontSize; if (style.BorderStyle == "3") { mbp.BackgroundColor = style.Background; } } else if (_format.GetType() == typeof(AdvancedSubStationAlpha)) { var style = AdvancedSubStationAlpha.GetSsaStyle(p.Extra, _subtitle.Header); mbp.SubtitleColor = style.Primary; mbp.SubtitleFontBold = style.Bold; mbp.SubtitleFontSize = style.FontSize; if (style.BorderStyle == "3") { mbp.BackgroundColor = style.Outline; } } } if (comboBoxBorderWidth.SelectedItem.ToString() == Configuration.Settings.Language.ExportPngXml.BorderStyleBoxForEachLine) { _borderWidth = 0; mbp.BackgroundColor = panelBorderColor.BackColor; mbp.BoxSingleLine = true; } else if (comboBoxBorderWidth.SelectedItem.ToString() == Configuration.Settings.Language.ExportPngXml.BorderStyleOneBox) { _borderWidth = 0; mbp.BackgroundColor = panelBorderColor.BackColor; } int width = 0; int height = 0; GetResolution(ref width, ref height); mbp.ScreenWidth = width; mbp.ScreenHeight = height; mbp.Type3D = comboBox3D.SelectedIndex; mbp.Depth3D = (int)numericUpDownDepth3D.Value; mbp.BottomMargin = comboBoxBottomMargin.SelectedIndex; mbp.ShadowWidth = comboBoxShadowWidth.SelectedIndex; mbp.ShadowAlpha = (int)numericUpDownShadowTransparency.Value; mbp.ShadowColor = panelShadowColor.BackColor; mbp.LineHeight = (int)numericUpDownLineSpacing.Value; if (_exportType == "VOBSUB" || _exportType == "STL" || _exportType == "SPUMUX") { mbp.LineJoinRound = true; } var bmp = GenerateImageFromTextWithStyle(mbp); if (_exportType == "VOBSUB" || _exportType == "STL" || _exportType == "SPUMUX") { var nbmp = new NikseBitmap(bmp); nbmp.ConverToFourColors(Color.Transparent, _subtitleColor, _borderColor, !checkBoxTransAntiAliase.Checked); var temp = nbmp.GetBitmap(); bmp.Dispose(); return temp; } return bmp; }