private TestReadOnlySequence Append(byte[] value, int start, int length) { var next = new TestReadOnlySequence(value, start, length) { RunningIndex = RunningIndex + Memory.Length, }; Next = next; return(next); }
public void ShouldSupportMultipleSegments() { using (var image = new MagickImage()) { var bytes = File.ReadAllBytes(Files.SnakewarePNG); var sequence = TestReadOnlySequence.Create(bytes, 5); image.Read(sequence); Assert.Equal(286, image.Width); Assert.Equal(67, image.Height); } }
public static ReadOnlySequence <byte> Create(byte[] data, int sequenceSize) { var first = new TestReadOnlySequence(data, 0, sequenceSize); var length = sequenceSize; var last = first.Append(data, sequenceSize, length); for (var i = sequenceSize + sequenceSize; i < data.Length; i += sequenceSize) { length = Math.Min(data.Length - i, sequenceSize); last = last.Append(data, i, length); } return(new ReadOnlySequence <byte>(first, 0, last, length)); }
public void ShouldSupportMultipleSegments() { using (var image = new MagickImage()) { var bytes = File.ReadAllBytes(Files.SnakewarePNG); var sequence = TestReadOnlySequence.Create(bytes, 5); image.Ping(sequence); Assert.Equal(286, image.Width); Assert.Equal(67, image.Height); Assert.Throws <InvalidOperationException>(() => image.GetPixelsUnsafe()); } }