📷 A modern, cross-platform, 2D Graphics library for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

162 lines
4.3 KiB

// Copyright (c) Six Labors.
// Licensed under the Six Labors Split License.
using System.Numerics;
using SixLabors.ImageSharp.Metadata.Profiles.Icc;
namespace SixLabors.ImageSharp.Tests.TestDataIcc.Conversion;
public class IccConversionDataClut
{
internal static IccClut Clut3x2 = new(
new[]
{
new[] { 0.1f, 0.1f },
new[] { 0.2f, 0.2f },
new[] { 0.3f, 0.3f },
new[] { 0.11f, 0.11f },
new[] { 0.21f, 0.21f },
new[] { 0.31f, 0.31f },
new[] { 0.12f, 0.12f },
new[] { 0.22f, 0.22f },
new[] { 0.32f, 0.32f },
new[] { 0.13f, 0.13f },
new[] { 0.23f, 0.23f },
new[] { 0.33f, 0.33f },
new[] { 0.14f, 0.14f },
new[] { 0.24f, 0.24f },
new[] { 0.34f, 0.34f },
new[] { 0.15f, 0.15f },
new[] { 0.25f, 0.25f },
new[] { 0.35f, 0.35f },
new[] { 0.16f, 0.16f },
new[] { 0.26f, 0.26f },
new[] { 0.36f, 0.36f },
new[] { 0.17f, 0.17f },
new[] { 0.27f, 0.27f },
new[] { 0.37f, 0.37f },
new[] { 0.18f, 0.18f },
new[] { 0.28f, 0.28f },
new[] { 0.38f, 0.38f },
},
new byte[] { 3, 3, 3 },
IccClutDataType.Float);
internal static IccClut Clut3x1 = new(
new[]
{
new[] { 0.10f },
new[] { 0.20f },
new[] { 0.30f },
new[] { 0.11f },
new[] { 0.21f },
new[] { 0.31f },
new[] { 0.12f },
new[] { 0.22f },
new[] { 0.32f },
new[] { 0.13f },
new[] { 0.23f },
new[] { 0.33f },
new[] { 0.14f },
new[] { 0.24f },
new[] { 0.34f },
new[] { 0.15f },
new[] { 0.25f },
new[] { 0.35f },
new[] { 0.16f },
new[] { 0.26f },
new[] { 0.36f },
new[] { 0.17f },
new[] { 0.27f },
new[] { 0.37f },
new[] { 0.18f },
new[] { 0.28f },
new[] { 0.38f },
},
new byte[] { 3, 3, 3 },
IccClutDataType.Float);
internal static IccClut Clut2x2 = new(
new[]
{
new[] { 0.1f, 0.9f },
new[] { 0.2f, 0.8f },
new[] { 0.3f, 0.7f },
new[] { 0.4f, 0.6f },
new[] { 0.5f, 0.5f },
new[] { 0.6f, 0.4f },
new[] { 0.7f, 0.3f },
new[] { 0.8f, 0.2f },
new[] { 0.9f, 0.1f },
},
new byte[] { 3, 3 },
IccClutDataType.Float);
internal static IccClut Clut2x1 = new(
new[]
{
new[] { 0.1f },
new[] { 0.2f },
new[] { 0.3f },
new[] { 0.4f },
new[] { 0.5f },
new[] { 0.6f },
new[] { 0.7f },
new[] { 0.8f },
new[] { 0.9f },
},
new byte[] { 3, 3 },
IccClutDataType.Float);
internal static IccClut Clut1x2 = new(
new[]
{
new[] { 0f, 0.5f },
new[] { 0.25f, 0.75f, },
new[] { 0.5f, 1f },
},
new byte[] { 3 },
IccClutDataType.Float);
internal static IccClut Clut1x1 = new(
new[]
{
new[] { 0f },
new[] { 0.5f },
new[] { 1f },
},
new byte[] { 3 },
IccClutDataType.Float);
public static object[][] ClutConversionTestData =
{
new object[] { Clut3x2, new Vector4(0.75f, 0.75f, 0.75f, 0), new Vector4(0.31f, 0.31f, 0, 0) },
new object[] { Clut3x1, new Vector4(0.2f, 0.6f, 0.8f, 0), new Vector4(0.276f, 0, 0, 0) },
new object[] { Clut3x1, new Vector4(0.75f, 0.75f, 0.75f, 0), new Vector4(0.31f, 0, 0, 0) },
new object[] { Clut2x2, new Vector4(0.2f, 0.6f, 0, 0), new Vector4(0.46f, 0.54f, 0, 0) },
new object[] { Clut2x2, new Vector4(0.25f, 0.75f, 0, 0), new Vector4(0.4f, 0.6f, 0, 0) },
new object[] { Clut2x1, new Vector4(0.25f, 0.75f, 0, 0), new Vector4(0.4f, 0, 0, 0) },
new object[] { Clut1x2, new Vector4(0.25f, 0, 0, 0), new Vector4(0.125f, 0.625f, 0, 0) },
new object[] { Clut1x1, new Vector4(0.25f, 0, 0, 0), new Vector4(0.25f, 0, 0, 0) },
};
}