mirror of https://github.com/SixLabors/ImageSharp
12 changed files with 158 additions and 70 deletions
@ -0,0 +1,48 @@ |
|||||
|
// Copyright (c) Six Labors and contributors.
|
||||
|
// Licensed under the Apache License, Version 2.0.
|
||||
|
|
||||
|
using System; |
||||
|
using System.Numerics; |
||||
|
using System.Runtime.CompilerServices; |
||||
|
|
||||
|
using SixLabors.ImageSharp.ColorSpaces.Companding; |
||||
|
|
||||
|
namespace SixLabors.ImageSharp.PixelFormats.Utils |
||||
|
{ |
||||
|
internal static partial class Vector4Converters |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Apply modifiers used requested by ToVector4() conversion.
|
||||
|
/// </summary>
|
||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
||||
|
internal static void ApplyForwardConversionModifiers(Span<Vector4> vectors, PixelConversionModifiers modifiers) |
||||
|
{ |
||||
|
if (modifiers.IsDefined(PixelConversionModifiers.SRgbCompand)) |
||||
|
{ |
||||
|
SRgbCompanding.Expand(vectors); |
||||
|
} |
||||
|
|
||||
|
if (modifiers.IsDefined(PixelConversionModifiers.Premultiply)) |
||||
|
{ |
||||
|
Vector4Utils.Premultiply(vectors); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Apply modifiers used requested by FromVector4() conversion.
|
||||
|
/// </summary>
|
||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
||||
|
internal static void ApplyBackwardConversionModifiers(Span<Vector4> vectors, PixelConversionModifiers modifiers) |
||||
|
{ |
||||
|
if (modifiers.IsDefined(PixelConversionModifiers.Premultiply)) |
||||
|
{ |
||||
|
Vector4Utils.UnPremultiply(vectors); |
||||
|
} |
||||
|
|
||||
|
if (modifiers.IsDefined(PixelConversionModifiers.SRgbCompand)) |
||||
|
{ |
||||
|
SRgbCompanding.Compress(vectors); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue