Process([NotNull] Stream stream, [CanBeNull] IEnumerable <IJpegSegmentMetadataReader> readers = null) { if (readers == null) { readers = _allReaders; } var segmentTypes = new HashSet <JpegSegmentType>(readers.SelectMany(reader => reader.GetSegmentTypes())); var segmentData = JpegSegmentReader.ReadSegments(new SequentialStreamReader(stream), segmentTypes); return(ProcessJpegSegmentData(readers, segmentData)); }
/// <exception cref="JpegProcessingException"/> /// <exception cref="IOException"/> public static DirectoryList Process(Stream stream, ICollection <IJpegSegmentMetadataReader>?readers = null) { readers ??= _allReaders; // Build the union of segment types desired by all readers var segmentTypes = new HashSet <JpegSegmentType>(readers.SelectMany(reader => reader.SegmentTypes)); // Read out those segments var segments = JpegSegmentReader.ReadSegments(new SequentialStreamReader(stream), segmentTypes); // Process them return(ProcessJpegSegments(readers, segments.ToList())); }
Process([NotNull] Stream stream, [CanBeNull] ICollection <IJpegSegmentMetadataReader> readers = null) { if (readers == null) { readers = _allReaders; } // Build the union of segment types desired by all readers var segmentTypes = new HashSet <JpegSegmentType>(readers.SelectMany(reader => reader.SegmentTypes)); // Read out those segments var segments = JpegSegmentReader.ReadSegments(new SequentialStreamReader(stream), segmentTypes); // Process them return(ProcessJpegSegments(readers, segments.ToList())); }