Files
2023-10-02 16:43:54 +03:00

52 lines
1.1 KiB
C#

namespace Steamworks.Data
{
public struct Image
{
public uint Width;
public uint Height;
public byte[] Data;
/// <summary>
/// Returns the color of the pixel at the specified position.
/// </summary>
/// <param name="x">X-coordinate</param>
/// <param name="y">Y-coordinate</param>
/// <returns>The color.</returns>
/// <exception cref="System.ArgumentException">If the X and Y or out of bounds.</exception>
public Color GetPixel( int x, int y )
{
if ( x < 0 || x >= Width ) throw new System.ArgumentException( "x out of bounds" );
if ( y < 0 || y >= Height ) throw new System.ArgumentException( "y out of bounds" );
Color c = new Color();
var i = (y * Width + x) * 4;
c.r = Data[i + 0];
c.g = Data[i + 1];
c.b = Data[i + 2];
c.a = Data[i + 3];
return c;
}
/// <summary>
/// Returns "{Width}x{Height} ({length of <see cref="Data"/>}bytes)"
/// </summary>
/// <returns></returns>
public override string ToString()
{
return $"{Width}x{Height} ({Data.Length}bytes)";
}
}
/// <summary>
/// Represents a color.
/// </summary>
public struct Color
{
public byte r, g, b, a;
}
}