public void ReassemblySize(string imagename)
        {
            var til = new TesselatedImageLoader();
            var sft = new Basic16Tesselator();

            var loaded_image    = til.LoadFromImagelibrary(imagename, sft);
            var assembled_image = loaded_image.AssembleFragments();

            var expected_width  = loaded_image.OriginalImage().Size.Width;
            var expected_height = loaded_image.OriginalImage().Size.Height;

            if (expected_width % 16 != 0)
            {
                expected_width = expected_width - (expected_width % 16);
            }
            if (expected_height % 16 != 0)
            {
                expected_height = expected_height - (expected_height % 16);
            }

            var expected_size = new Size {
                Width = expected_width, Height = expected_height
            };

            Assert.AreEqual(assembled_image.Size, expected_size);
        }
Exemple #2
0
        public void BasicExchangeEngineTest()
        {
            var tsfinder = new TileSetRepo.TileSetRepo();

            tsfinder.Discover();
            var tileset_stars  = (IHueMatchingTileset)tsfinder.ByName("Stars (16x16)")[0];
            var tileset_para16 = (IHueMatchingTileset)tsfinder.ByName("16 pastels (8x8)")[0];
            var loader         = new TesselatedImageLoader();
            var tesser         = new Basic16Tesselator();
            var loaded_image   = loader.LoadFromImagelibrary("green_leaf.jpg", tesser);
            var writer         = new ImageWriter();

            var output_path = UserSettings.GetDefaultPath("output_path");

            var assembled_bitmap_pre = loaded_image.AssembleFragments();

            writer.WriteBitmap(assembled_bitmap_pre, System.IO.Path.Combine(output_path, "green_leaf_unchanged.jpg"));

            new BasicExchangeEngine(tileset_stars, loaded_image).run();
            var assembled_bitmap_stars = loaded_image.AssembleFragments();

            writer.WriteBitmap(assembled_bitmap_stars, System.IO.Path.Combine(output_path, "stars_leaf_output.jpg"));

            new BasicExchangeEngine(tileset_para16, loaded_image).run();
            var assembled_bitmap_para16 = loaded_image.AssembleFragments();

            writer.WriteBitmap(assembled_bitmap_para16, System.IO.Path.Combine(output_path, "parametric_leaf_output.jpg"));
        }
Exemple #3
0
        // Lazy.
        protected void LazyUpdate()
        {
            if (!NeedsUpdate)
            {
                return;
            }

            if (InputImageName is null ||
                TileSet is null ||
                !File.Exists(InputImageName))
            {
                NeedsUpdate = false;
                return;
            }

            System.Console.WriteLine("TSR loaded {0} tilesets.", tsr.NumberOfTilesets());

            try
            {
                var buffer = System.IO.File.ReadAllBytes(InputImageName);
                var pixbuf = new Gdk.Pixbuf(buffer);
                var image  = new Gtk.Image(pixbuf);

                foreach (var win in update_targets)
                {
                    win.SetInputPixbuf(pixbuf);
                }
            }
            catch (Exception exx)
            {
                System.Console.WriteLine("LazyUpdate could not update image, caused exception {0} for {1} ", exx.ToString(), InputImageName);
            }

            try
            {
                var tesser = new Basic16Tesselator();
                var loader = new TesselatedImageLoader();

                var loaded_image = loader.LoadFromImagelibrary(InputImageName, tesser);
                var writer       = new ImageWriter();

                new TileExchange.BasicExchangeEngine((IHueMatchingTileset)TileSet, loaded_image).run();
                var assembled_bitmap_pre = loaded_image.AssembleFragments();
                writer.WriteBitmap(assembled_bitmap_pre, System.IO.Path.Combine("/tmp", "foo.png"));

                MemoryStream ms = new MemoryStream();

                assembled_bitmap_pre.Save(ms, ImageFormat.Png);
                ms.Position = 0;
                var pixbuf = new Gdk.Pixbuf(ms);

                update_targets[0].SetOutputPixbuf(pixbuf);
            }
            catch (Exception exx)
            {
                System.Console.WriteLine("LazyUpdate could not generate image, caused exception {0} for {1} ", exx.ToString(), InputImageName);
            }
        }
        public void SingleFragmentImages(string imagename, int width, int height)
        {
            var til = new TesselatedImageLoader();
            var sft = new SingleFragmentTesselator();

            var loaded_image = til.LoadFromImagelibrary(imagename, sft);
            var fragments    = loaded_image.GetImageFragments();

            Assert.AreEqual(1, fragments.Count);

            var fragment = fragments[0];

            Assert.AreEqual(width, fragment.GetReplacementFragment().GetSize().Width);
            Assert.AreEqual(height, fragment.GetReplacementFragment().GetSize().Height);
        }
        public void BasicFragmentation()
        {
            var til          = new TesselatedImageLoader();
            var sft          = new Basic16Tesselator();
            var loaded_image = til.LoadFromImagelibrary("red_blue_transitions.jpg", sft);
            var fragments    = loaded_image.GetImageFragments();

            Assert.AreEqual(28 * 28, fragments.Count);
            Assert.AreNotEqual(fragments[0].GetPosition(), fragments[1].GetPosition());

            var bottom_corner =
                from fragment in fragments
                where fragment.GetPosition().X > 175 && fragment.GetPosition().Y > 275
                select fragment.GetPosition();

            // [288, 304, 320, 336, 352, 368, 384, 400, 416, 432]  <- 10
            // [176, 192, 208, 224, 240, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 416, 432] <- 17
            Assert.AreEqual(10 * 17, bottom_corner.Count());
        }
Exemple #6
0
        public void DocumentationImage()
        {
            var tsfinder = new TileSetRepo.TileSetRepo();

            tsfinder.Discover(UserSettings.GetDefaultPath("tileset_path"), false);
            var tileset = (IHueMatchingTileset)tsfinder.ByName("Noisy Pastels (16x16)")[0];


            var loader       = new TesselatedImageLoader();
            var tesser       = new Basic16Tesselator();
            var loaded_image = loader.LoadFromImagelibrary("Polse.jpg", tesser);
            var writer       = new ImageWriter();

            var output_path = UserSettings.GetDefaultPath("output_path");

            new BasicExchangeEngine(tileset, loaded_image).run();
            var assembled_bitmap_pre = loaded_image.AssembleFragments();

            writer.WriteBitmap(assembled_bitmap_pre, System.IO.Path.Combine(output_path, "Pastellized Polse.png"));
        }