增加padding和margin参数

This commit is contained in:
ww-rm
2025-04-17 00:09:04 +08:00
parent a9f59a4d2f
commit c9c909cdf9
2 changed files with 40 additions and 34 deletions

View File

@@ -86,23 +86,6 @@ namespace SpineViewer.Spine.SpineExporter
/// </summary>
public SFML.Graphics.Color BackgroundColorPma { get; private set; } = SFML.Graphics.Color.Transparent;
/// <summary>
/// 四周填充距离, 单位为像素
/// </summary>
public Padding Padding
{
get => padding;
set
{
if (value.Left < 0) value.Left = 0;
if (value.Right < 0) value.Right = 0;
if (value.Top < 0) value.Top = 0;
if (value.Bottom < 0) value.Bottom = 0;
padding = value;
}
}
private Padding padding = new(0);
/// <summary>
/// 四周边缘距离, 单位为像素
/// </summary>
@@ -120,6 +103,23 @@ namespace SpineViewer.Spine.SpineExporter
}
private Padding margin = new(0);
/// <summary>
/// 四周填充距离, 单位为像素
/// </summary>
public Padding Padding
{
get => padding;
set
{
if (value.Left < 0) value.Left = 0;
if (value.Right < 0) value.Right = 0;
if (value.Top < 0) value.Top = 0;
if (value.Bottom < 0) value.Bottom = 0;
padding = value;
}
}
private Padding padding = new(0);
/// <summary>
/// 自动分辨率, 将会忽略预览画面的分辨率和视图, 使用模型自身的包围盒
/// </summary>
@@ -135,7 +135,7 @@ namespace SpineViewer.Spine.SpineExporter
var w = View.Size.X;
var h = View.Size.Y;
var currentBounds = new RectangleF(x, y, w, h);
var bounds = currentBounds.GetResolutionBounds(Resolution, new(0), Margin);
var bounds = currentBounds.GetResolutionBounds(Resolution, Margin, Padding);
using var view = new SFML.Graphics.View(View);
view.Center = new(bounds.X + bounds.Width / 2, bounds.Y + bounds.Height / 2);
@@ -247,8 +247,11 @@ namespace SpineViewer.Spine.SpineExporter
boundsCache.Clear();
var spinesToRender = spines.Where(sp => !RenderSelectedOnly || sp.IsSelected).Reverse().ToArray();
if (IsExportSingle) ExportSingle(spinesToRender, worker);
else ExportIndividual(spinesToRender, worker);
if (spinesToRender.Length > 0)
{
if (IsExportSingle) ExportSingle(spinesToRender, worker);
else ExportIndividual(spinesToRender, worker);
}
logger.LogCurrentProcessMemoryUsage();
}
@@ -302,18 +305,18 @@ namespace SpineViewer.Spine.SpineExporter
[Category("[0] "), DisplayName(""), Description("使, #RRGGBBAA")]
public SFML.Graphics.Color BackgroundColor { get => Exporter.BackgroundColor; set => Exporter.BackgroundColor = value; }
/// <summary>
/// 四周填充距离
/// </summary>
[TypeConverter(typeof(PaddingConverter))]
[Category("[0] "), DisplayName(""), Description(" (Padding), , ")]
public Padding Padding { get => Exporter.Padding; set => Exporter.Padding = value; }
/// <summary>
/// 四周边缘距离
/// </summary>
[TypeConverter(typeof(PaddingConverter))]
[Category("[0] "), DisplayName(""), Description(" (Margin), ")]
public Padding Margin { get => Exporter.Margin; set => Exporter.Margin = value; }
/// <summary>
/// 四周填充距离
/// </summary>
[TypeConverter(typeof(PaddingConverter))]
[Category("[0] "), DisplayName(""), Description(" (Padding), , ")]
public Padding Padding { get => Exporter.Padding; set => Exporter.Padding = value; }
}
}