Skip to content

Commit f2be050

Browse files
committed
Added PngCompressionSize to the IconWriteDefines.
1 parent 321ffb1 commit f2be050

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

src/Magick.NET/Formats/Icon/IconWriteDefines.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace ImageMagick.Formats;
1111
public sealed class IconWriteDefines : IWriteDefines
1212
{
1313
/// <summary>
14-
/// Gets or sets a value indicating whether automatic resizing is enabled.
14+
/// Gets or sets a value indicating whether automatic resizing is enabled (icon:auto-resize).
1515
/// </summary>
1616
public bool? AutoResize { get; set; }
1717

@@ -21,6 +21,11 @@ public sealed class IconWriteDefines : IWriteDefines
2121
public MagickFormat Format
2222
=> MagickFormat.Icon;
2323

24+
/// <summary>
25+
/// Gets or sets the minimum image size threshold above which a PNG image is stored instead of a BMP image (icon:png-compression-size).
26+
/// </summary>
27+
public uint? PngCompressionSize { get; set; }
28+
2429
/// <summary>
2530
/// Gets the defines that should be set as a define on an image.
2631
/// </summary>
@@ -30,6 +35,9 @@ public IEnumerable<IDefine> Defines
3035
{
3136
if (AutoResize.HasValue)
3237
yield return new MagickDefine(Format, "auto-resize", AutoResize.Value);
38+
39+
if (PngCompressionSize.HasValue)
40+
yield return new MagickDefine(Format, "png-compression-size", PngCompressionSize.Value);
3341
}
3442
}
3543
}

tests/Magick.NET.Tests/Formats/Icon/IconWriteDefinesTests/TheConstructor.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public void ShouldNotSetAnyDefines()
1818
image.Settings.SetDefines(new IconWriteDefines());
1919

2020
Assert.Null(image.Settings.GetDefine(MagickFormat.Icon, "auto-resize"));
21+
Assert.Null(image.Settings.GetDefine(MagickFormat.Icon, "png-compression-size"));
2122
}
2223
}
2324
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET.
2+
// Licensed under the Apache License, Version 2.0.
3+
4+
using ImageMagick;
5+
using ImageMagick.Formats;
6+
using Xunit;
7+
8+
namespace Magick.NET.Tests;
9+
10+
public partial class IconWriteDefinesTests
11+
{
12+
public class PngCompressionSize
13+
{
14+
[Fact]
15+
public void ShouldSetTheDefine()
16+
{
17+
var defines = new IconWriteDefines
18+
{
19+
PngCompressionSize = 64,
20+
};
21+
22+
using var image = new MagickImage();
23+
image.Settings.SetDefines(defines);
24+
25+
Assert.Equal("64", image.Settings.GetDefine(MagickFormat.Icon, "png-compression-size"));
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)