|
|
|
@ -133,8 +133,7 @@ namespace SixLabors.ImageSharp |
|
|
|
public override string ToString() => this.ToHex(); |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Converts the color instance to an <see cref="IPixel{TSelf}"/>
|
|
|
|
/// implementation defined by <typeparamref name="TPixel"/>.
|
|
|
|
/// Converts the color instance to a specified <see cref="IPixel{TSelf}"/> type.
|
|
|
|
/// </summary>
|
|
|
|
/// <typeparam name="TPixel">The pixel type to convert to.</typeparam>
|
|
|
|
/// <returns>The pixel value.</returns>
|
|
|
|
@ -147,6 +146,24 @@ namespace SixLabors.ImageSharp |
|
|
|
return pixel; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Bulk converts a span of <see cref="Color"/> to a span of a specified <see cref="IPixel{TSelf}"/> type.
|
|
|
|
/// </summary>
|
|
|
|
/// <typeparam name="TPixel">The pixel type to convert to.</typeparam>
|
|
|
|
/// <param name="configuration">The configuration.</param>
|
|
|
|
/// <param name="source">The source color span.</param>
|
|
|
|
/// <param name="destination">The destination pixel span.</param>
|
|
|
|
[MethodImpl(InliningOptions.ShortMethod)] |
|
|
|
public static void ToPixel<TPixel>( |
|
|
|
Configuration configuration, |
|
|
|
ReadOnlySpan<Color> source, |
|
|
|
Span<TPixel> destination) |
|
|
|
where TPixel : struct, IPixel<TPixel> |
|
|
|
{ |
|
|
|
ReadOnlySpan<Rgba64> rgba64Span = MemoryMarshal.Cast<Color, Rgba64>(source); |
|
|
|
PixelOperations<TPixel>.Instance.FromRgba64(configuration, rgba64Span, destination); |
|
|
|
} |
|
|
|
|
|
|
|
/// <inheritdoc />
|
|
|
|
[MethodImpl(InliningOptions.ShortMethod)] |
|
|
|
public bool Equals(Color other) |
|
|
|
@ -166,19 +183,5 @@ namespace SixLabors.ImageSharp |
|
|
|
{ |
|
|
|
return this.data.PackedValue.GetHashCode(); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Bulk convert a span of <see cref="Color"/> to a span of a specified pixel type.
|
|
|
|
/// </summary>
|
|
|
|
[MethodImpl(InliningOptions.ShortMethod)] |
|
|
|
internal static void ToPixel<TPixel>( |
|
|
|
Configuration configuration, |
|
|
|
ReadOnlySpan<Color> source, |
|
|
|
Span<TPixel> destination) |
|
|
|
where TPixel : struct, IPixel<TPixel> |
|
|
|
{ |
|
|
|
ReadOnlySpan<Rgba64> rgba64Span = MemoryMarshal.Cast<Color, Rgba64>(source); |
|
|
|
PixelOperations<TPixel>.Instance.FromRgba64(configuration, rgba64Span, destination); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|