public CV2Reader(Stream input) { if (input.Length < 17) { throw new IOException("ファイルが小さすぎます"); } _header = CV2Header.Deserialize(input); if (_header.Height * _header.PaddedWidth * _header.Bpp > input.Length - 17) { throw new IOException("ファイルが小さすぎます"); } cv2 = input; }
public static CV2Header Deserialize(Stream input) { CV2Header header = new CV2Header(); BinaryReaderEx reader = new BinaryReaderEx(input); header.bpp = reader.ReadByte(); header.Width = reader.ReadInt32(); header.Height = reader.ReadInt32(); header.PaddedWidth = reader.ReadInt32(); int resd1 = reader.ReadInt32(); if (header.PaddedWidth < header.Width) { throw new FormatException("ヘッダーが不正です。"); } return(header); }