示例#1
0
        public void SeparateByImageTypeTest()
        {
            string[] fileNames =
            {
                "InputImages\\new\\NotSupported\\AnimatedGIF.GIF",
                "InputImages\\new\\NotSupported\\MultiFrameTIF.TIF",
                "InputImages\\new\\NotSupported\\MisnamedTextFile.png",
                "InputImages\\new\\NotSupported\\CorruptPNG.png",

                "InputImages\\new\\Photo\\Grayscale8bppJPG.jpg",
                "InputImages\\new\\Photo\\MisnamedJPG",
                "InputImages\\new\\Photo\\MisnamedJPG.GIF",
                "InputImages\\new\\Photo\\MisnamedJPG.PNG",
                "InputImages\\new\\Photo\\Photo.JPG",

                "InputImages\\new\\NonphotoNonindexed\\Nonindexed24bppBMP.BMP",
                "InputImages\\new\\NonphotoNonindexed\\Nonindexed32bppAlphaPNG.png",
                "InputImages\\new\\NonphotoNonindexed\\Nonindexed32bppPNG.png",

                "InputImages\\new\\NonphotoIndexed\\Indexable24bppPNG.png",
                "InputImages\\new\\NonphotoIndexed\\Indexable32bppPNG.png",
                "InputImages\\new\\NonphotoIndexed\\Indexable32bppPNG256Pixels.png",
                "InputImages\\new\\NonphotoIndexed\\Indexed1bppBMP.bmp",
                "InputImages\\new\\NonphotoIndexed\\Indexed2bppPNG.PNG",
                "InputImages\\new\\NonphotoIndexed\\Indexed4bppBMP.bmp",
                "InputImages\\new\\NonphotoIndexed\\Indexed4bppPNG.PNG",
                "InputImages\\new\\NonphotoIndexed\\Indexed8bppBMP.bmp",
                "InputImages\\new\\NonphotoIndexed\\Indexed8bppGIF.GIF",
                "InputImages\\new\\NonphotoIndexed\\MisnamedBMP.JPG",
                "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.EXE",
                "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.JPG",
                "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.JS",
                "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.PNG",
                "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.BMP",
                "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.GIF",
                "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.JPG",
                "InputImages\\new\\NonphotoIndexed\\SingleFrame.tif"
            };
            string[] expectedFileNamesNotSupported =
            {
                "InputImages\\new\\NotSupported\\AnimatedGIF.GIF",
                "InputImages\\new\\NotSupported\\MultiFrameTIF.TIF",
                "InputImages\\new\\NotSupported\\MisnamedTextFile.png",
                "InputImages\\new\\NotSupported\\CorruptPNG.png"
            };
            string[] expectedFileNamesPhoto =
            {
                "InputImages\\new\\Photo\\Grayscale8bppJPG.jpg",
                "InputImages\\new\\Photo\\MisnamedJPG",
                "InputImages\\new\\Photo\\MisnamedJPG.GIF",
                "InputImages\\new\\Photo\\MisnamedJPG.PNG",
                "InputImages\\new\\Photo\\Photo.JPG"
            };
            string[] expectedFileNamesNonphotoNonindexed =
            {
                "InputImages\\new\\NonphotoNonindexed\\Nonindexed24bppBMP.BMP",
                "InputImages\\new\\NonphotoNonindexed\\Nonindexed32bppAlphaPNG.png",
                "InputImages\\new\\NonphotoNonindexed\\Nonindexed32bppPNG.png"
            };
            string[] expectedFileNamesNonphotoIndexed =
            {
                "InputImages\\new\\NonphotoIndexed\\Indexable24bppPNG.png",
                "InputImages\\new\\NonphotoIndexed\\Indexable32bppPNG.png",
                "InputImages\\new\\NonphotoIndexed\\Indexable32bppPNG256Pixels.png",
                "InputImages\\new\\NonphotoIndexed\\Indexed1bppBMP.bmp",
                "InputImages\\new\\NonphotoIndexed\\Indexed2bppPNG.PNG",
                "InputImages\\new\\NonphotoIndexed\\Indexed4bppBMP.bmp",
                "InputImages\\new\\NonphotoIndexed\\Indexed4bppPNG.PNG",
                "InputImages\\new\\NonphotoIndexed\\Indexed8bppBMP.bmp",
                "InputImages\\new\\NonphotoIndexed\\Indexed8bppGIF.GIF",
                "InputImages\\new\\NonphotoIndexed\\MisnamedBMP.JPG",
                "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.EXE",
                "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.JPG",
                "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.JS",
                "InputImages\\new\\NonphotoIndexed\\MisnamedGIF.PNG",
                "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.BMP",
                "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.GIF",
                "InputImages\\new\\NonphotoIndexed\\MisnamedPNG.JPG",
                "InputImages\\new\\NonphotoIndexed\\SingleFrame.tif"
            };

            AppendCurrentDirectory(expectedFileNamesNotSupported);
            AppendCurrentDirectory(expectedFileNamesPhoto);
            AppendCurrentDirectory(expectedFileNamesNonphotoNonindexed);
            AppendCurrentDirectory(expectedFileNamesNonphotoIndexed);

            var expectedFileNames = new Dictionary <WebGrease.ImageAssemble.ImageType, string[]>();

            expectedFileNames.Add(WebGrease.ImageAssemble.ImageType.NotSupported, expectedFileNamesNotSupported);
            expectedFileNames.Add(WebGrease.ImageAssemble.ImageType.Photo, expectedFileNamesPhoto);
            expectedFileNames.Add(WebGrease.ImageAssemble.ImageType.NonphotoNonindexed, expectedFileNamesNonphotoNonindexed);
            expectedFileNames.Add(WebGrease.ImageAssemble.ImageType.NonphotoIndexed, expectedFileNamesNonphotoIndexed);

            var inputImagesList = new List <InputImage>();

            foreach (var fileName in fileNames)
            {
                inputImagesList.Add(new InputImage(Path.Combine(Environment.CurrentDirectory, fileName)));
            }

            var separatedLists = ImageAssembleGenerator.SeparateByImageType(inputImagesList.AsReadOnly());

            foreach (ImageType imageType in System.Enum.GetValues(typeof(WebGrease.ImageAssemble.ImageType)))
            {
                var separatedList = separatedLists[imageType];
                CompareLists(separatedList, expectedFileNames[imageType]);
                if (separatedList != null)
                {
                    foreach (var entry in separatedList)
                    {
                        if (entry.Bitmap != null)
                        {
                            entry.Bitmap.Dispose();
                        }
                    }
                }
            }
        }