public static async Task <TiffHeader> ReadHeaderAsync(Stream stream) { var bytes = await stream.ReadBytesAsync(SIZEOF_HEADER); ByteOrder byteOrder = ReadHeader_ByteOrder(bytes); int magicNumber = DataConverter.ToInt16(bytes, 2, byteOrder); TiffIfdReference firstIfdReference = new TiffIfdReference(DataConverter.ToUInt32(bytes, 4, byteOrder)); if (magicNumber != 42) { throw new ImageFormatException("The TIFF header does not contain the expected magic number."); } return(new TiffHeader { ByteOrder = byteOrder, FirstIfdReference = firstIfdReference }); }
public static Task <TiffIfd> ReadIfdAsync(TiffIfdReference ifdReference, Stream stream, ByteOrder byteOrder) { stream.Seek(ifdReference.Offset, SeekOrigin.Begin); return(ReadIfdAsync(stream, byteOrder)); }