CSJ2K.J2kImage.CreateEncodableSource C# (CSharp) Method

CreateEncodableSource() public static method

public static CreateEncodableSource ( IEnumerable streams ) : BlkImgDataSrc
streams IEnumerable
return BlkImgDataSrc
        public static BlkImgDataSrc CreateEncodableSource(IEnumerable<Stream> streams)
        {
            if (streams == null)
            {
                throw new ArgumentNullException("streams");
            }

            var counter = 0;
            var ncomp = 0;
            var ppminput = false;
            var imageReaders = new List<ImgReader>();

            foreach (var stream in streams)
            {
                ++counter;
                var imgType = GetImageType(stream);

                switch (imgType)
                {
                    case "P5":
                        imageReaders.Add(new ImgReaderPGM(stream));
                        ncomp += 1;
                        break;
                    case "P6":
                        imageReaders.Add(new ImgReaderPPM(stream));
                        ncomp += 3;
                        ppminput = true;
                        break;
                    case "PG":
                        imageReaders.Add(new ImgReaderPGX(stream));
                        ncomp += 1;
                        break;
                    default:
                        throw new ArgumentOutOfRangeException("streams", "Invalid image type");
                }
            }

            if (ppminput && counter > 1)
            {
                error("With PPM input format only 1 input file can be specified", 2);
                return null;
            }

            BlkImgDataSrc imgsrc;

            // **** ImgDataJoiner (if needed) ****
            if (ppminput || ncomp == 1)
            {
                // Just one input
                imgsrc = imageReaders[0];
            }
            else
            {
                // More than one reader => join all readers into 1
                var imgcmpidxs = new int[ncomp];
                imgsrc = new ImgDataJoiner(imageReaders, imgcmpidxs);
            }

            return imgsrc;
        }

Same methods

J2kImage::CreateEncodableSource ( Stream stream ) : BlkImgDataSrc