public void TestMarkerList() { jpeg_decompress_struct cinfo = new jpeg_decompress_struct(); using (FileStream input = new FileStream(Tester.MapOpenPath("PARROTS.JPG"), FileMode.Open)) { /* Specify data source for decompression */ cinfo.jpeg_stdio_src(input); const int markerDataLengthLimit = 1000; cinfo.jpeg_save_markers((int)JPEG_MARKER.COM, markerDataLengthLimit); cinfo.jpeg_save_markers((int)JPEG_MARKER.APP0, markerDataLengthLimit); /* Read file header, set default decompression parameters */ cinfo.jpeg_read_header(true); Assert.AreEqual(cinfo.Marker_list.Count, 3); int[] expectedMarkerType = { (int)JPEG_MARKER.APP0, (int)JPEG_MARKER.APP0, (int)JPEG_MARKER.COM }; int[] expectedMarkerOriginalLength = { 14, 3072, 10 }; for (int i = 0; i < cinfo.Marker_list.Count; ++i) { jpeg_marker_struct marker = cinfo.Marker_list[i]; Assert.IsNotNull(marker); Assert.AreEqual(marker.Marker, expectedMarkerType[i]); Assert.AreEqual(marker.OriginalLength, expectedMarkerOriginalLength[i]); Assert.LessOrEqual(marker.Data.Length, markerDataLengthLimit); } } }