using System;
namespace LibAPNG
{
internal class Helper
{
///
/// Convert big-endian to little-endian or reserve
///
internal static byte[] ConvertEndian(byte[] i)
{
if (i.Length % 2 != 0)
throw new Exception("byte array length must multiply of 2");
Array.Reverse(i);
return i;
}
///
/// Convert big-endian to little-endian or reserve
///
internal static int ConvertEndian(int i)
{
return BitConverter.ToInt32(ConvertEndian(BitConverter.GetBytes(i)), 0);
}
///
/// Convert big-endian to little-endian or reserve
///
internal static uint ConvertEndian(uint i)
{
return BitConverter.ToUInt32(ConvertEndian(BitConverter.GetBytes(i)), 0);
}
///
/// Convert big-endian to little-endian or reserve
///
internal static Int16 ConvertEndian(Int16 i)
{
return BitConverter.ToInt16(ConvertEndian(BitConverter.GetBytes(i)), 0);
}
///
/// Convert big-endian to little-endian or reserve
///
internal static UInt16 ConvertEndian(UInt16 i)
{
return BitConverter.ToUInt16(ConvertEndian(BitConverter.GetBytes(i)), 0);
}
///
/// Compare two byte array
///
public static bool IsBytesEqual(byte[] byte1, byte[] byte2)
{
if (byte1.Length != byte2.Length)
return false;
for (int i = 0; i < byte1.Length; i++)
{
if (byte1[i] != byte2[i])
return false;
}
return true;
}
}
}