Skip to content

Commit 8370ef3

Browse files
committed
Added extra unit tests for the meta channels of tiff files.
1 parent df3051a commit 8370ef3

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

tests/Magick.NET.Tests/Coders/TheTiffCoder.cs

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the Apache License, Version 2.0.
33

44
using System.IO;
5+
using System.Linq;
56
using ImageMagick;
67
using ImageMagick.Formats;
78
using Xunit;
@@ -138,6 +139,64 @@ public void ShouldWriteTiffImageInCorrectColor()
138139
ColorAssert.Equal(MagickColors.White, output, 0, 0);
139140
}
140141

142+
[Fact]
143+
public void ShouldReadAndWriteMetaChannelsCorrectlyForRgbaImage()
144+
{
145+
using var images = new MagickImageCollection
146+
{
147+
new MagickImage(MagickColors.Red, 1, 1),
148+
new MagickImage(MagickColors.Green, 1, 1),
149+
new MagickImage(MagickColors.Blue, 1, 1),
150+
new MagickImage(MagickColors.Aqua, 1, 1),
151+
new MagickImage(MagickColors.Magenta, 1, 1),
152+
};
153+
154+
using var input = images.Combine();
155+
using var memorystream = new MemoryStream();
156+
input.Write(memorystream, MagickFormat.Tiff);
157+
memorystream.Position = 0;
158+
159+
using var output = new MagickImage(memorystream);
160+
161+
var channels = output.Channels.ToList();
162+
Assert.Equal(5, channels.Count);
163+
Assert.Equal(PixelChannel.Red, channels[0]);
164+
Assert.Equal(PixelChannel.Green, channels[1]);
165+
Assert.Equal(PixelChannel.Blue, channels[2]);
166+
Assert.Equal(PixelChannel.Alpha, channels[3]);
167+
Assert.Equal(PixelChannel.Meta0, channels[4]);
168+
}
169+
170+
[Fact]
171+
public void ShouldReadAndWriteMetaChannelsCorrectlyForChymkaImage()
172+
{
173+
using var images = new MagickImageCollection
174+
{
175+
new MagickImage(MagickColors.Cyan, 1, 1),
176+
new MagickImage(MagickColors.Magenta, 1, 1),
177+
new MagickImage(MagickColors.Yellow, 1, 1),
178+
new MagickImage(MagickColors.Khaki, 1, 1),
179+
new MagickImage(MagickColors.Aqua, 1, 1),
180+
new MagickImage(MagickColors.Magenta, 1, 1),
181+
};
182+
183+
using var input = images.Combine(ColorSpace.CMYK);
184+
using var memorystream = new MemoryStream();
185+
input.Write(memorystream, MagickFormat.Tiff);
186+
memorystream.Position = 0;
187+
188+
using var output = new MagickImage(memorystream);
189+
190+
var channels = output.Channels.ToList();
191+
Assert.Equal(6, channels.Count);
192+
Assert.Equal(PixelChannel.Cyan, channels[0]);
193+
Assert.Equal(PixelChannel.Magenta, channels[1]);
194+
Assert.Equal(PixelChannel.Yellow, channels[2]);
195+
Assert.Equal(PixelChannel.Black, channels[3]);
196+
Assert.Equal(PixelChannel.Alpha, channels[4]);
197+
Assert.Equal(PixelChannel.Meta0, channels[5]);
198+
}
199+
141200
private static void TestValue(IIptcProfile profile, IptcTag tag, string expectedValue)
142201
{
143202
var value = profile.GetValue(tag);

0 commit comments

Comments
 (0)