/// <summary>
 /// Converts the given unsigned rational number to an array of bytes.
 /// Numbers are converted from the platform byte-order to the given byte-order.
 /// </summary>
 public static byte[] GetBytes(MathEx.UFraction32 value, ByteOrder tobyteorder)
 {
     byte[] num  = GetBytes(value.Numerator, ByteOrder.System, tobyteorder);
     byte[] den  = GetBytes(value.Denominator, ByteOrder.System, tobyteorder);
     byte[] data = new byte[8];
     Array.Copy(num, 0, data, 0, 4);
     Array.Copy(den, 0, data, 4, 4);
     return(data);
 }
 /// <summary>
 /// Returns an array of unsigned rational numbers converted from
 /// the given byte array.
 /// Numbers are converted from the given byte-order to platform byte-order.
 /// </summary>
 public static MathEx.UFraction32[] ToURationalArray(byte[] data, int count, ByteOrder frombyteorder)
 {
     MathEx.UFraction32[] numbers = new MathEx.UFraction32[count];
     for (uint i = 0; i < count; i++)
     {
         byte[] num = new byte[4];
         byte[] den = new byte[4];
         Array.Copy(data, i * 8, num, 0, 4);
         Array.Copy(data, i * 8 + 4, den, 0, 4);
         numbers[i].Set(ToUInt32(num, 0, frombyteorder, ByteOrder.System), ToUInt32(den, 0, frombyteorder, ByteOrder.System));
     }
     return(numbers);
 }
 public ExifURational(ExifTag tag, MathEx.UFraction32 value)
     : base(tag)
 {
     mValue = value;
 }
 public ExifURational(ExifTag tag, uint numerator, uint denominator)
     : base(tag)
 {
     mValue = new MathEx.UFraction32(numerator, denominator);
 }