예제 #1
0
            public void BasicWithDownScaleReturnsDownScaledSize()
            {
                var info = new SharedImageInfo();

                info.Filename = "images/camera.png";
                var tools   = new SkiaSharpBitmapTools(info, Logger);
                var dpiPath = new DpiPath("", 0.5m);

                tools.Resize(dpiPath, DestinationFilename);

                using var resultImage = SKBitmap.Decode(DestinationFilename);
                Assert.Equal(896, resultImage.Width);
                Assert.Equal(896, resultImage.Height);

                using var pixmap = resultImage.PeekPixels();
                Assert.Equal(SKColors.Empty, pixmap.GetPixelColor(10, 10));
                Assert.Equal(SKColors.White, pixmap.GetPixelColor(175, 175));
            }
예제 #2
0
            public void BasicNoScaleNoResizeReturnsOriginalSize()
            {
                var info = new SharedImageInfo();

                info.Filename = "images/camera.png";
                info.Resize   = false;
                var tools   = new SkiaSharpBitmapTools(info, Logger);
                var dpiPath = new DpiPath("", 1);

                tools.Resize(dpiPath, DestinationFilename);

                using var resultImage = SKBitmap.Decode(DestinationFilename);
                Assert.Equal(1792, resultImage.Width);
                Assert.Equal(1792, resultImage.Height);

                using var pixmap = resultImage.PeekPixels();
                Assert.Equal(SKColors.Empty, pixmap.GetPixelColor(10, 10));
                Assert.Equal(SKColors.White, pixmap.GetPixelColor(350, 350));
            }
예제 #3
0
            public void ColorizedWithNamedReturnsColored()
            {
                var info = new SharedImageInfo();

                info.Filename  = "images/camera.png";
                info.TintColor = Color.FromName("Red");
                var tools   = new SkiaSharpBitmapTools(info, Logger);
                var dpiPath = new DpiPath("", 1);

                tools.Resize(dpiPath, DestinationFilename);

                using var resultImage = SKBitmap.Decode(DestinationFilename);
                Assert.Equal(1792, resultImage.Width);
                Assert.Equal(1792, resultImage.Height);

                using var pixmap = resultImage.PeekPixels();
                Assert.Equal(SKColors.Empty, pixmap.GetPixelColor(10, 10));
                Assert.Equal(SKColors.Red, pixmap.GetPixelColor(350, 350));
            }
예제 #4
0
            public void BasicWithColorsKeepsColors()
            {
                var info = new SharedImageInfo();

                info.Filename = "images/camera_color.png";
                var tools   = new SkiaSharpBitmapTools(info, Logger);
                var dpiPath = new DpiPath("", 1);

                tools.Resize(dpiPath, DestinationFilename);

                using var resultImage = SKBitmap.Decode(DestinationFilename);
                Assert.Equal(256, resultImage.Width);
                Assert.Equal(256, resultImage.Height);

                using var pixmap = resultImage.PeekPixels();
                Assert.Equal(SKColors.Empty, pixmap.GetPixelColor(10, 10));
                Assert.Equal(SKColors.Red, pixmap.GetPixelColor(37, 137));
                Assert.Equal(SKColors.Lime, pixmap.GetPixelColor(81, 137));
                Assert.Equal(SKColors.Blue, pixmap.GetPixelColor(125, 137));
            }
예제 #5
0
            public void ColorizedWithAlphaWithColorsReplacesColors()
            {
                var info = new SharedImageInfo();

                info.Filename  = "images/camera_color.png";
                info.TintColor = Color.FromArgb(127, Color.Red);
                var tools   = new SkiaSharpBitmapTools(info, Logger);
                var dpiPath = new DpiPath("", 1);

                tools.Resize(dpiPath, DestinationFilename);

                using var resultImage = SKBitmap.Decode(DestinationFilename);
                Assert.Equal(256, resultImage.Width);
                Assert.Equal(256, resultImage.Height);

                using var pixmap = resultImage.PeekPixels();
                Assert.Equal(SKColors.Empty, pixmap.GetPixelColor(10, 10));
                Assert.Equal(SKColors.Red.WithAlpha(127), pixmap.GetPixelColor(37, 137));
                Assert.Equal(SKColors.Red.WithAlpha(127), pixmap.GetPixelColor(81, 137));
                Assert.Equal(SKColors.Red.WithAlpha(127), pixmap.GetPixelColor(125, 137));
            }
예제 #6
0
            public void WithBaseSizeResizes()
            {
                var info = new SharedImageInfo();

                info.Filename = "images/camera_color.png";
                info.BaseSize = new Size(512, 512);
                var tools   = new SkiaSharpBitmapTools(info, Logger);
                var dpiPath = new DpiPath("", 1);

                tools.Resize(dpiPath, DestinationFilename);

                using var resultImage = SKBitmap.Decode(DestinationFilename);
                Assert.Equal(512, resultImage.Width);
                Assert.Equal(512, resultImage.Height);

                using var pixmap = resultImage.PeekPixels();
                Assert.Equal(SKColors.Empty, pixmap.GetPixelColor(10, 10));
                Assert.Equal(SKColors.Red, pixmap.GetPixelColor(74, 274));
                Assert.Equal(SKColors.Lime, pixmap.GetPixelColor(162, 274));
                Assert.Equal(SKColors.Blue, pixmap.GetPixelColor(250, 274));
            }