Skip to content

Commit

Permalink
Fixed bug in image export - thx marb99 :)
Browse files Browse the repository at this point in the history
Fix #2187
  • Loading branch information
niksedk committed Jan 22, 2017
1 parent 7ade105 commit eb814ea
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 54 deletions.
2 changes: 2 additions & 0 deletions Changelog.txt
Expand Up @@ -9,6 +9,7 @@
* Added shortcut "Go to previous line and set video position" - thx Mia
* IMPROVED:
* Updated Russian translation - thx Elheym
* Updated Portuguese translation - thx moob
* Minor improvements for format "Structured titles" - thx Yamato-ua
* List view columns arrangable and non-clickable - thx Ingo
* FIXED:
Expand All @@ -18,6 +19,7 @@
* Fix for MPC-HC 32-bit - thx ZoneX
* Fixed issue with importing "Unknown 53" format - thx darnn
* Fixed italic rendering issue in format DCinema SMPTE - thx Miga
* Fixed bug in image export - thx marb99


3.5.1 (13th December 2016)
Expand Down
78 changes: 24 additions & 54 deletions src/Forms/ExportPngXml.cs
Expand Up @@ -1951,15 +1951,8 @@ private static NikseBitmap GenereateBitmapForCalc(string text, MakeBitmapParamet
lastText.Append(sb);
TextDraw.DrawText(font, sf, path, sb, isItalic, parameter.SubtitleFontBold, false, left, top, ref newLine, leftMargin, ref newLinePathPoint);
}
if (path.PointCount > 0)
{
var list = (PointF[])path.PathPoints.Clone(); // avoid using very slow path.PathPoints indexer!!!
for (int k = oldPathPointIndex; k < list.Length; k++)
{
if (list[k].X > addLeft)
addLeft = list[k].X;
}
}

addLeft = GetLastPositionFromPath(path, oldPathPointIndex, addLeft);
if (path.PointCount == 0)
addLeft = left;
else if (addLeft < 0.01)
Expand Down Expand Up @@ -2068,15 +2061,8 @@ private static NikseBitmap GenereateBitmapForCalc(string text, MakeBitmapParamet

TextDraw.DrawText(font, sf, path, sb, isItalic, parameter.SubtitleFontBold, false, left, top, ref newLine, leftMargin, ref newLinePathPoint);
}
if (path.PointCount > 0)
{
var list = (PointF[])path.PathPoints.Clone(); // avoid using very slow path.PathPoints indexer!!!
for (int k = oldPathPointIndex; k < list.Length; k++)
{
if (list[k].X > addLeft)
addLeft = list[k].X;
}
}

addLeft = GetLastPositionFromPath(path, oldPathPointIndex, addLeft);
if (addLeft < 0.01)
addLeft = left + 2;
left = addLeft;
Expand Down Expand Up @@ -2563,15 +2549,8 @@ private static Bitmap GenerateImageFromTextWithStyleInner(MakeBitmapParameter pa
lastText.Append(sb);
TextDraw.DrawText(font, sf, path, sb, isItalic, isBold || parameter.SubtitleFontBold, false, left, top, ref newLine, leftMargin, ref newLinePathPoint);
}
if (path.PointCount > 0)
{
var list = (PointF[])path.PathPoints.Clone(); // avoid using very slow path.PathPoints indexer!!!
for (int k = oldPathPointIndex; k < list.Length; k++)
{
if (list[k].X > addLeft)
addLeft = list[k].X;
}
}

addLeft = GetLastPositionFromPath(path, oldPathPointIndex, addLeft);
if (path.PointCount == 0)
addLeft = left;
else if (addLeft < 0.01)
Expand Down Expand Up @@ -2682,15 +2661,8 @@ private static Bitmap GenerateImageFromTextWithStyleInner(MakeBitmapParameter pa

TextDraw.DrawText(font, sf, path, sb, isItalic, isBold || parameter.SubtitleFontBold, false, left, top, ref newLine, leftMargin, ref newLinePathPoint);
}
if (path.PointCount > 0)
{
var list = (PointF[])path.PathPoints.Clone(); // avoid using very slow path.PathPoints indexer!!!
for (int k = oldPathPointIndex; k < list.Length; k++)
{
if (list[k].X > addLeft)
addLeft = list[k].X;
}
}

addLeft = GetLastPositionFromPath(path, oldPathPointIndex, addLeft);
if (addLeft < 0.01)
addLeft = left + 2;
left = addLeft;
Expand Down Expand Up @@ -2745,15 +2717,7 @@ private static Bitmap GenerateImageFromTextWithStyleInner(MakeBitmapParameter pa
TextDraw.DrawText(font, sf, path, sb, isItalic, isBold || parameter.SubtitleFontBold, false, left, top, ref newLine, leftMargin, ref newLinePathPoint);
}

if (path.PointCount > 0)
{
var list = (PointF[])path.PathPoints.Clone(); // avoid using very slow path.PathPoints indexer!!!
for (int k = oldPathPointIndex; k < list.Length; k++)
{
if (list[k].X > addLeft)
addLeft = list[k].X;
}
}
addLeft = GetLastPositionFromPath(path, oldPathPointIndex, addLeft);
if (addLeft < 0.01)
addLeft = left + 2;
left = addLeft;
Expand Down Expand Up @@ -2797,15 +2761,7 @@ private static Bitmap GenerateImageFromTextWithStyleInner(MakeBitmapParameter pa
TextDraw.DrawText(font, sf, path, sb, isItalic, isBold, false, left, top, ref newLine, leftMargin, ref newLinePathPoint);
}

if (path.PointCount > 0)
{
var list = (PointF[])path.PathPoints.Clone(); // avoid using very slow path.PathPoints indexer!!!
for (int k = oldPathPointIndex; k < list.Length; k++)
{
if (list[k].X > addLeft)
addLeft = list[k].X;
}
}
addLeft = GetLastPositionFromPath(path, oldPathPointIndex, addLeft);
if (addLeft < 0.01)
addLeft = left + 2;
left = addLeft;
Expand Down Expand Up @@ -2908,6 +2864,20 @@ private static Bitmap GenerateImageFromTextWithStyleInner(MakeBitmapParameter pa
}
}

private static float GetLastPositionFromPath(GraphicsPath path, int oldPathPointIndex, float addLeft)
{
if (path.PointCount > 0)
{
var list = (PointF[])path.PathPoints.Clone(); // avoid using very slow path.PathPoints indexer!!!
for (int k = oldPathPointIndex + 1; k < list.Length; k++)
{
if (list[k].X > addLeft)
addLeft = list[k].X;
}
}
return addLeft;
}

private static Point? GetAssPoint(string s)
{
int k = s.IndexOf("{\\", StringComparison.Ordinal);
Expand Down

0 comments on commit eb814ea

Please sign in to comment.