Browse Source

refactor ToRgba32() on the rest

af/merge-core
Anton Firszov 7 years ago
parent
commit
0b80b7fe07
  1. 2
      src/ImageSharp/Common/Helpers/ImageMaths.cs
  2. 7
      src/ImageSharp/PixelFormats/Gray16.cs
  3. 8
      src/ImageSharp/PixelFormats/Gray8.cs
  4. 8
      src/ImageSharp/PixelFormats/Rgb24.cs
  5. 10
      src/ImageSharp/PixelFormats/Rgb48.cs
  6. 5
      src/ImageSharp/PixelFormats/Rgba32.cs
  7. 11
      src/ImageSharp/PixelFormats/Rgba64.cs

2
src/ImageSharp/Common/Helpers/ImageMaths.cs

@ -37,7 +37,7 @@ namespace SixLabors.ImageSharp
/// <summary>
/// Scales a value from a 16 bit <see cref="ushort"/> to it's 8 bit <see cref="byte"/> equivalent.
/// </summary>
/// <param name="component">The 8 bit compoonent value.</param>
/// <param name="component">The 8 bit component value.</param>
/// <returns>The <see cref="byte"/></returns>
[MethodImpl(InliningOptions.ShortMethod)]
public static byte DownScaleFrom16BitTo8Bit(ushort component)

7
src/ImageSharp/PixelFormats/Gray16.cs

@ -136,10 +136,13 @@ namespace SixLabors.ImageSharp.PixelFormats
/// <inheritdoc />
[MethodImpl(InliningOptions.ShortMethod)]
public Rgba32 ToRgba32()
public void ToRgba32(ref Rgba32 dest)
{
byte rgb = ImageMaths.DownScaleFrom16BitTo8Bit(this.PackedValue);
return new Rgba32(rgb, rgb, rgb, byte.MaxValue);
dest.R = rgb;
dest.G = rgb;
dest.B = rgb;
dest.A = byte.MaxValue;
}
/// <inheritdoc/>

8
src/ImageSharp/PixelFormats/Gray8.cs

@ -108,7 +108,13 @@ namespace SixLabors.ImageSharp.PixelFormats
/// <inheritdoc />
[MethodImpl(InliningOptions.ShortMethod)]
public Rgba32 ToRgba32() => new Rgba32(this.PackedValue, this.PackedValue, this.PackedValue, byte.MaxValue);
public void ToRgba32(ref Rgba32 dest)
{
dest.R = this.PackedValue;
dest.G = this.PackedValue;
dest.B = this.PackedValue;
dest.A = byte.MaxValue;
}
/// <inheritdoc/>
[MethodImpl(InliningOptions.ShortMethod)]

8
src/ImageSharp/PixelFormats/Rgb24.cs

@ -165,7 +165,13 @@ namespace SixLabors.ImageSharp.PixelFormats
/// <inheritdoc />
[MethodImpl(InliningOptions.ShortMethod)]
public Rgba32 ToRgba32() => new Rgba32(this.R, this.G, this.B, byte.MaxValue);
public void ToRgba32(ref Rgba32 dest)
{
dest.R = this.R;
dest.G = this.G;
dest.B = this.B;
dest.A = byte.MaxValue;
}
/// <inheritdoc/>
[MethodImpl(InliningOptions.ShortMethod)]

10
src/ImageSharp/PixelFormats/Rgb48.cs

@ -165,12 +165,12 @@ namespace SixLabors.ImageSharp.PixelFormats
/// <inheritdoc />
[MethodImpl(InliningOptions.ShortMethod)]
public Rgba32 ToRgba32()
public void ToRgba32(ref Rgba32 dest)
{
byte r = ImageMaths.DownScaleFrom16BitTo8Bit(this.R);
byte g = ImageMaths.DownScaleFrom16BitTo8Bit(this.G);
byte b = ImageMaths.DownScaleFrom16BitTo8Bit(this.B);
return new Rgba32(r, g, b, byte.MaxValue);
dest.R = ImageMaths.DownScaleFrom16BitTo8Bit(this.R);
dest.G = ImageMaths.DownScaleFrom16BitTo8Bit(this.G);
dest.B = ImageMaths.DownScaleFrom16BitTo8Bit(this.B);
dest.A = byte.MaxValue;
}
/// <inheritdoc/>

5
src/ImageSharp/PixelFormats/Rgba32.cs

@ -301,7 +301,10 @@ namespace SixLabors.ImageSharp.PixelFormats
/// <inheritdoc />
[MethodImpl(InliningOptions.ShortMethod)]
public Rgba32 ToRgba32() => this;
public void ToRgba32(ref Rgba32 dest)
{
dest = this;
}
/// <inheritdoc/>
[MethodImpl(InliningOptions.ShortMethod)]

11
src/ImageSharp/PixelFormats/Rgba64.cs

@ -197,13 +197,12 @@ namespace SixLabors.ImageSharp.PixelFormats
/// <inheritdoc />
[MethodImpl(InliningOptions.ShortMethod)]
public Rgba32 ToRgba32()
public void ToRgba32(ref Rgba32 dest)
{
byte r = ImageMaths.DownScaleFrom16BitTo8Bit(this.R);
byte g = ImageMaths.DownScaleFrom16BitTo8Bit(this.G);
byte b = ImageMaths.DownScaleFrom16BitTo8Bit(this.B);
byte a = ImageMaths.DownScaleFrom16BitTo8Bit(this.A);
return new Rgba32(r, g, b, a);
dest.R = ImageMaths.DownScaleFrom16BitTo8Bit(this.R);
dest.G = ImageMaths.DownScaleFrom16BitTo8Bit(this.G);
dest.B = ImageMaths.DownScaleFrom16BitTo8Bit(this.B);
dest.A = ImageMaths.DownScaleFrom16BitTo8Bit(this.A);
}
/// <inheritdoc/>

Loading…
Cancel
Save