コード例 #1
0
ファイル: Image.cs プロジェクト: dpawatts/zeus
        public string GetUrl(int width, int height, bool fill, DynamicImageFormat format)
        {
            Composition image = new Composition();
            image.ImageFormat = format;
            ImageLayer imageLayer = new ImageLayer();

            ZeusImageSource source = new ZeusImageSource();
            source.ContentID = ID;

            imageLayer.Source = source;

            ResizeFilter resizeFilter = new ResizeFilter();
            resizeFilter.Mode = fill ? ResizeMode.UniformFill : ResizeMode.Uniform;
            resizeFilter.Width = Unit.Pixel(width);
            resizeFilter.Height = Unit.Pixel(height);

            imageLayer.Filters.Add(resizeFilter);

            image.Layers.Add(imageLayer);

            return ImageUrlGenerator.GetImageUrl(image);

            /*old code replaced
             *
            return new DynamicImageBuilder()
                .WithLayer(
                    LayerBuilder.Image.SourceImage(this).WithFilter(FilterBuilder.Resize.To(width, height, fill)))
                .Url;
             */
        }
コード例 #2
0
ファイル: ImageLayerTests.cs プロジェクト: hanchao/DotSpatial
 public void LegendTextIsNotChangedWhenDataSetIsNotRealFile()
 {
     const string legendText = "Custom Legend Text";
     var target = new ImageLayer { LegendText = legendText };
     Assert.AreEqual(legendText, target.LegendText);
     var imageData = new ImageData {Filename = ""};
     target.DataSet = imageData; // assign dataset
     // Legend should be same
     Assert.AreEqual(legendText, target.LegendText);
 }
コード例 #3
0
        public Texture2D GetImage(ImageLayer layer)
        {
            switch (layer)
            {
                case ImageLayer.Glow:
                    return GlowTarget.GetTexture();
            }

            return GetImage();
        }
コード例 #4
0
ファイル: ImageLayerTests.cs プロジェクト: hanchao/DotSpatial
 public void LegendTextIsEqualsToFileNameWhenDataSetIsRealFile()
 {
     var target = new ImageLayer();
     Assert.IsNull(target.LegendText);
     var imageData = new ImageData
     {
         Filename = Path.GetTempFileName(),
     };
     target.DataSet = imageData;
     // Legend should be equals to filename
     Assert.AreEqual(Path.GetFileName(imageData.Filename), target.LegendText);
 }
コード例 #5
0
        protected override void UpdateMapRecord()
        {
            var provider = _ImageLayerContext?.CreateMapDataProvider() ?? throw new Exception("Cannot create image layer.");
            var map      = MapContext.Map;

            if (!MiniMap)
            {
                var layer = new ImageLayer()
                {
                    DataProvider       = provider,
                    EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True,
                };
                if (Transparency.HasValue)
                {
                    layer.Transparency = Transparency.Value;
                }

                if (!string.IsNullOrWhiteSpace(Name))
                {
                    layer.Name = Name;
                }

                map.Layers.Add(layer);
                MapContext.CurrentLayer = layer;
            }
            else
            {
                var dataProvider = provider as MapDataProviderBase ?? throw new Exception("MiniMap does not support selected data provider.");

                var layerMini = new MiniMapImageTilesLayer()
                {
                    DataProvider = dataProvider
                };

                if (!string.IsNullOrWhiteSpace(Name))
                {
                    layerMini.Name = Name;
                }

                if (map.MiniMap == null)
                {
                    throw new Exception("Mini map is not created.");
                }

                map.MiniMap.Layers.Add(layerMini);
                MapContext.CurrentLayer = layerMini;
            }
        }
コード例 #6
0
        /// <summary>
        /// Read image file
        /// </summary>
        /// <param name="aFile">File name</param>
        ///<returns>image layer</returns>
        public static ImageLayer ReadImageFile(string aFile)
        {
            string oEx = Path.GetExtension(aFile);
            string sEx = oEx.Remove(2, 1);

            sEx = sEx + "w";
            string     wFile       = aFile.Replace(oEx, sEx);
            Image      aImage      = new Bitmap(aFile);
            ImageLayer aImageLayer = new ImageLayer();

            aImageLayer.FileName      = aFile;
            aImageLayer.WorldFileName = wFile;
            aImageLayer.Image         = aImage;
            aImageLayer.LayerName     = Path.GetFileName(aFile);
            aImageLayer.Visible       = true;
            if (File.Exists(wFile))
            {
                aImageLayer.ReadImageWorldFile(wFile);
            }
            else
            {
                WorldFilePara aWFP = new WorldFilePara();
                aWFP.XUL     = 0;
                aWFP.YUL     = 90;
                aWFP.XScale  = 0.05;
                aWFP.YScale  = -0.05;
                aWFP.XRotate = 0;
                aWFP.YRotate = 0;
                aImageLayer.WorldFileParaV = aWFP;
                aImageLayer.WriteImageWorldFile(wFile, aImageLayer.WorldFileParaV);
            }

            double XBR, YBR;

            XBR = aImageLayer.Image.Width * aImageLayer.WorldFileParaV.XScale + aImageLayer.WorldFileParaV.XUL;
            YBR = aImageLayer.Image.Height * aImageLayer.WorldFileParaV.YScale + aImageLayer.WorldFileParaV.YUL;
            Extent aExtent = new Extent();

            aExtent.minX              = aImageLayer.WorldFileParaV.XUL;
            aExtent.minY              = YBR;
            aExtent.maxX              = XBR;
            aExtent.maxY              = aImageLayer.WorldFileParaV.YUL;
            aImageLayer.Extent        = aExtent;
            aImageLayer.LayerDrawType = LayerDrawType.Image;
            aImageLayer.IsMaskout     = true;

            return(aImageLayer);
        }
コード例 #7
0
            public static void then_should_return_false_given_null_second_layer()
            {
                // Arrange
                using (var imageLayer1 = new ImageLayer {
                    Position = new Point(1, 1)
                })
                {
                    ImageLayer imageLayer2 = null;

                    // Act
                    var result = imageLayer1.Equals(imageLayer2);

                    // Assert
                    Assert.That(result, Is.False);
                }
            }
コード例 #8
0
            public static void then_should_return_false_given_different_layers()
            {
                // Arrange
                var imageLayer1 = new ImageLayer {
                    Position = new Point(1, 1)
                };
                var imageLayer2 = new ImageLayer {
                    Position = new Point(10, 10)
                };

                // Act
                var result = imageLayer1.Equals(imageLayer2);

                // Assert
                Assert.That(result, Is.False);
            }
コード例 #9
0
ファイル: Day8.cs プロジェクト: AlFasGD/AdventOfCode2019
        private T General <T>(ImageProcessor <T> processor)
        {
            var       chars     = FileContents.ToCharArray();
            const int width     = 25;
            const int height    = 6;
            const int layerSize = width * height;

            var layers = new ImageLayer[chars.Length / layerSize];

            for (int i = 0; i < chars.Length; i += layerSize)
            {
                layers[i / layerSize] = new ImageLayer(chars, i, layerSize);
            }

            return(processor(layers));
        }
コード例 #10
0
        public mQuickComposite(Bitmap B, mModifier M)
        {
            image             = new ImageImageSource();
            layer             = new ImageLayer();
            CompositionObject = new Composition();

            image.Image  = new mConvert(B).BitmapToWritableBitmap();
            layer.Source = image;

            layer.Filters.Add(M.filter);
            CompositionObject.Layers.Add(layer);

            CompositionObject.ImageFormat = DynamicImageFormat.Png;

            ModifiedBitmap = new Bitmap(new mConvert(CompositionObject.GenerateImage().Image).SourceToBitmap());
        }
コード例 #11
0
        public void LegendTextIsNotChangedWhenDataSetIsNotRealFile()
        {
            const string legendText = "Custom Legend Text";
            var          target     = new ImageLayer {
                LegendText = legendText
            };

            Assert.AreEqual(legendText, target.LegendText);
            var imageData = new ImageData {
                Filename = ""
            };

            target.DataSet = imageData; // assign dataset
            // Legend should be same
            Assert.AreEqual(legendText, target.LegendText);
        }
コード例 #12
0
 protected override void CleanUpLayer(bool bFinal)
 {
     if (m_Layer != null)
     {
         m_Layer.Dispose();
     }
     if (File.Exists(m_strCacheFileName))
     {
         File.Delete(m_strCacheFileName);
     }
     if (bFinal && m_bIsTmp && File.Exists(m_strFileName))
     {
         File.Delete(m_strFileName);
     }
     m_Layer        = null;
     m_blnIsChanged = true;
 }
コード例 #13
0
        private void button1_Click(object sender, System.EventArgs e)
        {
            try
            {
                if (this.curSelectedDataSet == null)
                {
                    return;
                }

                this.currentImageList.Clear();
                this.currentAnimatingImages.Clear();
                if (this.imageLayer != null)
                {
                    m_WorldWindow.CurrentWorld.RenderableObjects.Remove(this.imageLayer.Name);
                    this.imageLayer.Dispose();
                    this.imageLayer = null;
                }

                if (this.buttonLoad.Text == "Cancel")
                {
                    this.buttonLoad.Text = "Load";
                }
                else
                {
                    this.currentAnimatingDataSet = this.curSelectedDataSet;

                    if (this.listBox1.SelectedItems.Count > 0)
                    {
                        this.animationTimer.Start();
                        foreach (string item in this.listBox1.SelectedItems)
                        {
                            this.currentImageList.Add(item);
                        }
                        this.buttonLoad.Text  = "Cancel";
                        this.downloaderThread = new System.Threading.Thread(new System.Threading.ThreadStart(this.downloadThreadFunc));
                        this.downloaderThread.IsBackground = true;
                        this.downloaderThread.Start();
                    }
                }
            }
            catch (Exception ex)
            {
                this.statusBar1.Text = "Error";
                Log.Write(ex);
            }
        }
コード例 #14
0
        XElement FromImageLayer(ImageLayer layer)
        {
            return(new XElement("Image", GetContents()));

            IEnumerable <XObject> GetContents()
            {
                foreach (var item in GetLayerContents(layer))
                {
                    yield return(item);
                }

                if (!string.IsNullOrWhiteSpace(layer.RefId))
                {
                    yield return(new XAttribute(nameof(layer.RefId), layer.RefId));
                }
            }
        }
コード例 #15
0
            public static void then_should_return_true_given_image_and_size_and_opacity_and_position_same()
            {
                // Arrange
                using (var imageLayer1 = new ImageLayer {
                    Opacity = 50, Position = new Point(1, 1), Size = new Size(5, 5)
                })
                    using (var imageLayer2 = new ImageLayer {
                        Opacity = 50, Position = new Point(1, 1), Size = new Size(5, 5)
                    })
                    {
                        // Act
                        var result = imageLayer1.Equals(imageLayer2);

                        // Assert
                        Assert.That(result, Is.True);
                    }
            }
コード例 #16
0
        protected internal virtual void UpdateLayerImage(SCMap map, MapImageDataProviderBase provider)
        {
            if (!MiniMap)
            {
                var layer = new ImageLayer()
                {
                    DataProvider       = provider,
                    EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True,
                };
                if (Transparency.HasValue)
                {
                    layer.Transparency = Transparency.Value;
                }

                if (!string.IsNullOrWhiteSpace(Name))
                {
                    layer.Name = Name;
                }

                map.Map.Layers.Add(layer);
                map.CurrentLayer = layer;
            }
            else
            {
                var dataProvider = provider as MapDataProviderBase ?? throw new Exception("MiniMap does not support selected data provider.");

                var layerMini = new MiniMapImageTilesLayer()
                {
                    DataProvider = dataProvider
                };

                if (!string.IsNullOrWhiteSpace(Name))
                {
                    layerMini.Name = Name;
                }

                if (map.Map.MiniMap == null)
                {
                    throw new Exception("Mini map is not created.");
                }

                map.Map.MiniMap.Layers.Add(layerMini);
                map.CurrentLayer = layerMini;
            }
        }
コード例 #17
0
        public byte[] Convert(byte[] imageBytes)
        {
            using var inputImageStream = new MemoryStream(imageBytes);
            var inputImage   = Image.FromStream(inputImageStream);
            var resizedLogo  = _watermarkSettings.ShouldResizeWatermark ? _logo.Resize(GetNewWatermarkSize(inputImage.Size)) : _logo;
            var logoPosition = _watermarkSettings.Position.ToActualPosition(inputImage.Size, resizedLogo.Size);
            var imageLayer   = new ImageLayer {
                Image    = resizedLogo,
                Size     = resizedLogo.Size,
                Opacity  = _watermarkSettings.Opacity,
                Position = logoPosition
            };

            using var convertedImageStream = new MemoryStream();
            using var factory = new ImageFactory(preserveExifData: true);
            factory.Load(inputImage).Overlay(imageLayer).Save(convertedImageStream);
            return(convertedImageStream.ToArray());
        }
コード例 #18
0
        public void Should_TriggerDblClick()
        {
            var layer     = new ImageLayer();
            var triggered = false;
            var map       = new Map("id");
            var eventArgs = CreateEventArgsForMouseEvent("dblclick");

            layer.OnDblClick += args => {
                triggered = args.Map == map &&
                            args.LayerId == eventArgs.LayerId &&
                            args.Pixel == eventArgs.Pixel &&
                            args.Position == eventArgs.Position

                            && args.Type == eventArgs.Type;
            };
            layer.DispatchEvent(map, eventArgs);
            Assert.True(triggered);
        }
コード例 #19
0
        public void SetHighLight(Point position, Size size, Color color)
        {
            ImageLayer  imageLayer  = new ImageLayer();
            ResizeLayer resizeLayer = new ResizeLayer(size);

            resizeLayer.ResizeMode = ResizeMode.Stretch;
            ImageFactory temp = new ImageFactory();

            temp.Load(new MemoryStream(File.ReadAllBytes(@"D:\TFTest\Square.png")))
            .Resize(resizeLayer)
            .ReplaceColor(Color.White, color);

            imageLayer.Image    = temp.Image;
            imageLayer.Opacity  = 70;
            imageLayer.Position = position;

            _mainImageFactory.Overlay(imageLayer);
        }
コード例 #20
0
        public static void Picture(string name, Image img, Size size, Point point)
        {
            ImageFactory realimg    = PhotoProcessing.LoadFile("./Images/" + name + ".png");
            ImageFactory background = PhotoProcessing.LoadFile("./Images/" + name + "background.png");
            ImageLayer   back       = new ImageLayer();

            back.Image = realimg.Image;
            ImageLayer profile = new ImageLayer();

            profile.Image    = img;
            profile.Size     = size; //325 45
            profile.Position = point;

            background.Overlay(profile);
            background.Overlay(back);

            PhotoProcessing.SaveFile(background, "./Images/final.png");
        }
コード例 #21
0
        public static void Wasted(Image img)
        {
            ImageFactory realimg    = PhotoProcessing.LoadFile("./Images/wasted.png");
            ImageFactory background = PhotoProcessing.LoadFile("./Images/wastedbackground.png");
            ImageLayer   back       = new ImageLayer();

            back.Image = realimg.Image;
            ImageLayer profile = new ImageLayer();

            profile.Image    = img;
            profile.Size     = new Size(500, 500);
            profile.Position = new Point(0, 150);

            background.Overlay(profile);
            background.Tint(Color.Gray);
            background.Overlay(back);

            PhotoProcessing.SaveFile(background, "./Images/final.png");
        }
コード例 #22
0
        public static void Display(User user, DiscordClient client)
        {
            byte[] avatar = null;
            using (var wc = new System.Net.WebClient()) {
                avatar = (user.AvatarUrl == null) ? null : wc.DownloadData(user.AvatarUrl);
                if (avatar == null)
                {
                    client.GetChannel(
                        (from channel in Config.INSTANCE.primaryChannels where channel.server_id == user.Server.Id select channel.channel_id).First()
                        ).SendMessage("Welcome new comrade" + user.Mention);

                    return;
                }
            }
            var   astream   = new MemoryStream(avatar);
            Image ai        = Image.FromStream(astream);
            var   outstream = new MemoryStream();

            using (var ifact = new ImageProcessor.ImageFactory()) {
                //159,204 image size 283x283
                ImageLayer ilay = new ImageLayer()
                {
                    Image    = ai,
                    Size     = new Size(283, 283),
                    Position = new Point(159, 204)
                };
                ifact.Load("resources/welcome.jpg");
                ifact.Overlay(ilay);
                System.Drawing.Color yellow = System.Drawing.Color.FromArgb(208, 190, 25);
                TextLayer            uname  = new TextLayer()
                {
                    Position = new Point(108, 512), FontFamily = FontFamily.GenericSansSerif, FontSize = 30, Text = user.Nickname, FontColor = yellow
                };
                ifact.Watermark(uname);
                ifact.Save(outstream);
            }
            Channel general = client.GetChannel((from channel in Config.INSTANCE.primaryChannels where channel.server_id == user.Server.Id select channel.channel_id).First());

            general.SendMessage("Welcome new comrade " + user.Mention);
            general.SendFile("welcome.jpg", outstream);
            ModerationLog.LogToPublic($"User {user} joined.", client.GetServer(user.Server.Id));
        }
コード例 #23
0
        protected Image PreviewSlide(Song sng, string currentText, string currentTranslationText)
        {
            SongSlide slide = (SongSlide)sng.Parts[CurrentPartId].Slides[CurrentSlideId].Clone();

            slide.Text            = currentText;
            slide.TranslationText = currentTranslationText;
            SlideTextFormatting slideFormatting = new SlideTextFormatting();

            PreviewFormattingMapper.Map(sng, ref slideFormatting);

            // Disabled for performance
            slideFormatting.OutlineEnabled = false;
            slideFormatting.SmoothShadow   = false;

            slideFormatting.ScaleFontSize = Settings.ProjectionFontScaling;
            slideFormatting.SmoothShadow  = false;

            TextLayer sl = new TextLayer(slideFormatting)
            {
                MainText = slide.Lines.ToArray(),
                SubText  = slide.Translation.ToArray()
            };

            sl.DrawBordersForDebugging = Settings.Default.DebugMode;

            ImageLayer il = new ImageLayer(Settings.ProjectionBackColor);

            IBackground bg = sng.Parts[CurrentPartId].Slides[CurrentSlideId].Background;

            il.Image = ImgManager.GetImage(bg);

            var      bmp = new Bitmap(1024, 768);
            Graphics gr  = Graphics.FromImage(bmp);

            gr.CompositingQuality = CompositingQuality.HighSpeed;
            gr.SmoothingMode      = SmoothingMode.HighSpeed;

            il.WriteOut(gr, null);
            sl.WriteOut(gr, null);

            return(bmp);
        }
コード例 #24
0
    public static string ProcessScreenshot(string filePath)
    {
        Console.WriteLine("Processing " + Path.GetFileName(filePath) + "...");
        var       imgBytes      = File.ReadAllBytes(filePath);
        CropLayer fifaCrop      = new CropLayer(11.5f, 34.8f, 32.5f, 17.5f, CropMode.Percentage);
        CropLayer tempCrop      = new CropLayer(0, 0, 0, 92f, CropMode.Percentage);
        Image     originalImage = Image.FromFile(filePath);
        string    savePath      = (Path.GetDirectoryName(filePath) + @"\Processed\" + Path.GetFileName(filePath));

        using (var tempStream1 = new MemoryStream())
            using (var tempStream2 = new MemoryStream())
                using (var imageFactory = new ImageFactory(false))
                {
                    imageFactory.Load(originalImage)
                    .Saturation(-100)
                    .Crop(fifaCrop)
                    .Contrast(100)
                    .Save(tempStream1)
                    .Crop(tempCrop)
                    .Filter(MatrixFilters.Invert)
                    .Save(tempStream2);

                    Image      goalsImage = Image.FromStream(tempStream2);
                    ImageLayer goals      = new ImageLayer()
                    {
                        Image    = goalsImage,
                        Size     = goalsImage.Size,
                        Opacity  = 100,
                        Position = new Point(originalImage.Size.Height)
                    };

                    imageFactory.Load(tempStream1)
                    .Overlay(goals)
                    .Save(savePath);

                    tempStream1.Dispose();
                    tempStream2.Dispose();
                    imageFactory.Dispose();
                }
        Console.WriteLine("Image processed and saved to " + savePath);
        return(savePath);
    }
コード例 #25
0
        private void PrepareMap()
        {
            // Create a map control.
            map = new MapControl();

            // Specify the map position on the form.
            map.Dock = DockStyle.Fill;

            // Add the map control to the window.
            this.Controls.Add(map);

            // Bring the map to the front.
            map.BringToFront();

            // Create an image tiles layer and add it to the map.
            ImageLayer tilesLayer = new ImageLayer();

            map.Layers.Add(tilesLayer);

            // Create an information layer and add it to the map.
            InformationLayer infoLayer = new InformationLayer();

            map.Layers.Add(infoLayer);

            VectorItemsLayer items = new VectorItemsLayer();

            items.Data = new MapItemStorage();
            map.Layers.Add(items);

            // Create a Bing data provider and specify the Bing key.
            BingMapDataProvider bingProvider = new BingMapDataProvider();

            tilesLayer.DataProvider = bingProvider;
            bingProvider.BingKey    = yourBingKey;

            // Create a Bing search data provider and specify the Bing key.
            searchProvider                    = new BingSearchDataProvider();
            infoLayer.DataProvider            = searchProvider;
            searchProvider.GenerateLayerItems = false;
            searchProvider.BingKey            = yourBingKey;
            map.ShowSearchPanel               = false;
        }
コード例 #26
0
        public void Should_TriggerTouchStart()
        {
            var layer     = new ImageLayer();
            var triggered = false;
            var map       = new Map("id");
            var eventArgs = CreateEventArgsForTouchEvent("touchstart");

            layer.OnTouchStart += args => {
                triggered = args.Map == map &&
                            args.LayerId == eventArgs.LayerId &&
                            args.Pixel == eventArgs.Pixel &&
                            args.Position == eventArgs.Position

                            && args.Pixels == eventArgs.Pixels &&
                            args.Positions == eventArgs.Positions &&
                            args.Type == eventArgs.Type;
            };
            layer.DispatchEvent(map, eventArgs);
            Assert.True(triggered);
        }
コード例 #27
0
ファイル: CatalogManager.cs プロジェクト: A-F-V/CardCatalog
        private void GenerateCardView(List <CatalogCode> codes)
        {
            ImageFactory output = new ImageFactory().Load(new Bitmap(1, 1));

            foreach (CatalogCode code in codes)
            {
                string     path = CardPath(code);
                ImageLayer temp = new ImageLayer();
                temp.Image    = Image.FromFile(path);
                temp.Position = new Point(0, output.Image.Height);
                ResizeLayer rl = new ResizeLayer(new Size(Math.Max(temp.Image.Width, output.Image.Width),
                                                          output.Image.Height + temp.Image.Height), ResizeMode.BoxPad, AnchorPosition.TopLeft);
                output.Resize(rl);
                output.Overlay(temp);
                temp.Dispose();
            }

            output.Image.Save(folder + tempFolder + tempFile, ImageFormat.Tiff);
            output.Dispose();
        }
コード例 #28
0
        public static void Drake(Image img1, Image img2)
        {
            ImageFactory lm = PhotoProcessing.LoadFile("./Images/drake.png");
            ImageLayer   one, two;

            one = new ImageLayer();
            two = new ImageLayer();

            one.Image    = img1;
            one.Size     = new Size(300, 300);
            one.Position = new Point(300, 0);
            two.Image    = img2;
            two.Size     = new Size(300, 300);
            two.Position = new Point(300, 300);

            lm.Overlay(one);
            lm.Overlay(two);

            PhotoProcessing.SaveFile(lm, "./Images/final.png");
        }
コード例 #29
0
        public static void Lovemeter(Image img1, Image img2)
        {
            ImageFactory lm = PhotoProcessing.LoadFile("./Images/lovemeter.png");
            ImageLayer   one, two;

            one = new ImageLayer();
            two = new ImageLayer();

            one.Image    = img1;
            one.Size     = new Size(100, 100);
            one.Position = new Point(13, 67);
            two.Image    = img2;
            two.Size     = new Size(100, 100);
            two.Position = new Point(117, 67);

            lm.Overlay(one);
            lm.Overlay(two);

            PhotoProcessing.SaveFile(lm, "./Images/final.png");
        }
コード例 #30
0
ファイル: ImageBuilder.cs プロジェクト: ImanRezaeipour/clinic
        public async Task <bool> ProductImagsProcessAsync(string filePath, string path)
        {
            string pathWatermark = HttpContext.Current.Server.MapPath(FileConst.WatermarkIcon);
            var    imageLayer    = new ImageLayer
            {
                Image    = System.Drawing.Image.FromFile(pathWatermark, true),
                Position = new Point
                {
                    X = 15,
                    Y = 15
                }
            };

            var imageFactory = new ImageFactory(true);

            imageFactory.Load(filePath);
            if (imageLayer.Image.HorizontalResolution.InRange(95, Single.MaxValue) || imageLayer.Image.VerticalResolution.InRange(95, Single.MaxValue))
            {
                imageFactory.Resolution(96, 96);
            }

            if (imageLayer.Image.Height.InRange(314, Int32.MaxValue) || imageLayer.Image.Width.InRange(419, Int32.MaxValue))
            {
                imageFactory.Resize(new Size
                {
                    Height = 315,
                    Width  = 420
                });
            }
            else
            {
                imageFactory.Resize(new Size
                {
                    Height = 315,
                    Width  = 420
                });
            }

            imageFactory.BackgroundColor(Color.Transparent).Overlay(imageLayer).Save(filePath);
            return(true);
        }
コード例 #31
0
        public void ImageDataTest()
        {
            var input = new ImageLayer {
                Id        = 42,
                Offset    = new Point2D(1, 2),
                Z         = -10,
                SubZ      = -20,
                Data      = new byte[] { 1, 2, 3, 4, 5 },
                IsLayered = true
            };

            var serializer = new ImageLayerHandler();
            var output     = (ImageLayer)serializer.Reserialize(input);

            Assert.That(output.Id, Is.EqualTo(input.Id));
            Assert.That(output.Z, Is.EqualTo(input.Z));
            Assert.That(output.SubZ, Is.EqualTo(input.SubZ));
            Assert.That(output.Offset, Is.EqualTo(input.Offset));
            Assert.That(output.IsLayered, Is.EqualTo(input.IsLayered));
            Assert.That(output.Data, Is.EquivalentTo(input.Data));
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // Create a map control and add it to the window.
            MapControl map = new MapControl();

            this.Content = map;

            // Create a layer.
            ImageLayer layer = new ImageLayer()
            {
                DataProvider = new BingMapDataProvider()
                {
                    BingKey = "Insert your Bing Maps key here.",
                    Kind    = BingMapKind.Road
                }
            };

            map.Layers.Add(layer);
            map.ZoomLevel   = 4;
            map.CenterPoint = new GeoPoint(40, -100);
        }
コード例 #33
0
        public static void Tobecontinued(Image img)
        {
            ImageFactory tbc           = PhotoProcessing.LoadFile("./Images/tbc.png");
            ImageFactory background    = PhotoProcessing.LoadFile("./Images/tbcbackground.png");
            ImageLayer   tobecontinued = new ImageLayer();

            tobecontinued.Image = tbc.Image;
            ImageLayer profile = new ImageLayer
            {
                Image = img,
                Size  = new Size(300, 300) //325 45
            };

            tobecontinued.Position = new Point(5, 247);

            background.Overlay(profile);
            background.Tint(Color.Yellow);
            background.Overlay(tobecontinued);

            PhotoProcessing.SaveFile(background, "./Images/final.png");
        }
コード例 #34
0
        public MainWindow()
        {
            InitializeComponent();

            MapControl map = new MapControl()
            {
                CenterPoint = new GeoPoint(51.5, 0),
                ZoomLevel   = 14 //road names for screenshot 1
                                 //ZoomLevel = 13.5 //fractional zoom level for screenshot 2
                                 //ZoomLevel = 17 //overscaled zoom level for screenshot 3
            };
            ImageLayer          layer        = new ImageLayer();
            MbTilesDataProvider dataProvider = new MbTilesDataProvider()
            {
                FileUri = new Uri(@"\\corp\internal\common\4pshenichny\VectorTileRenderer\2017-07-03_great-britain_england.mbtiles")
            };

            layer.DataProvider = dataProvider;
            map.Layers.Add(layer);
            this.grid.Children.Add(map);
        }
コード例 #35
0
ファイル: Map.cs プロジェクト: bmotamer/tiled
    public Map(XDocument xDocument)
    {
        version 		= null;
        orientation 	= Orientation.Orthogonal;
        width 			= 0;
        height 			= 0;
        tileWidth 		= 0;
        tileHeight 		= 0;
        backgroundColor = Color.black;

        XElement xMap = xDocument.Element("map");

        foreach (XAttribute xAttribute in xMap.Attributes())
            switch (xAttribute.Name.ToString())
            {
            case "version":
                version = (string)xAttribute;
                break;
            case "orientation":
                orientation = (Orientation)Enum.Parse(typeof(Orientation), (string)xAttribute, true);
                break;
            case "width":
                width = (int)xAttribute;
                break;
            case "height":
                height = (int)xAttribute;
                break;
            case "tilewidth":
                tileWidth = (int)xAttribute;
                break;
            case "tileheight":
                tileHeight = (int)xAttribute;
                break;
            case "backgroundcolor":
                backgroundColor = ConvertXColor((string)xAttribute);
                break;
            }

        Tileset			  tileset;
        int				  tilesetLength;
        int 			  tilesetIndex;
        TileLayer 		  tileLayer;
        ObjectLayer 	  objectLayer;
        ImageLayer 		  imageLayer;
        List<Tileset> 	  tilesetsList 	   = new List<Tileset>();
        List<TileLayer>   tileLayersList   = new List<TileLayer>();
        List<ObjectLayer> objectLayersList = new List<ObjectLayer>();
        List<ImageLayer>  imageLayersList  = new List<ImageLayer>();
        List<ILayer> 	  layersList 	   = new List<ILayer>();
        List<Property> 	  propertyList	   = new List<Property>();

        foreach (XElement xElement in xMap.Elements())
            switch (xElement.Name.ToString())
            {
            case "tileset":
                tileset 	  = new Tileset(xElement);
                tilesetLength = tilesetsList.Count;
                if (tilesetLength == 0)
                    tilesetsList.Add(tileset);
                else
                {
                    tilesetIndex = tilesetLength;
                    while (tilesetIndex-- > 0)
                        if (tilesetIndex == 0)
                            tilesetsList.Insert(0, tileset);
                        else if (tileset.firstGID > tilesetsList[tilesetIndex].firstGID)
                        {
                            if (tilesetIndex == tilesetLength - 1)
                                tilesetsList.Add(tileset);
                            else
                                tilesetsList.Insert(tilesetIndex + 1, tileset);
                        }
                }
                break;
            case "layer":
                tileLayer = new TileLayer(xElement, width, height);
                tileLayersList.Add(tileLayer);
                layersList.Add(tileLayer);
                break;
            case "objectgroup":
                objectLayer = new ObjectLayer(xElement);
                objectLayersList.Add(objectLayer);
                layersList.Add(objectLayer);
                break;
            case "imagelayer":
                imageLayer = new ImageLayer(xElement);
                imageLayersList.Add(imageLayer);
                layersList.Add(imageLayer);
                break;
            case "properties":
                propertyList.AddRange(ConvertXProperties(xElement));
                break;
            }

        tilesets 	 = tilesetsList.ToArray();
        tileLayers 	 = tileLayersList.ToArray();
        objectLayers = objectLayersList.ToArray();
        imageLayers  = imageLayersList.ToArray();
        layers 		 = layersList.ToArray();
        properties 	 = propertyList.ToArray();
    }
コード例 #36
0
ファイル: SCCBuilder.cs プロジェクト: svtz/GraphLabs
        public void InitModuleNormalMode()
        {
            if (receivedValue == null)
                throw new ArgumentNullException();
            if (receivedValue.GetType() != typeof(Graph))
                throw new ArgumentException();

            MyGraph = (Graph)receivedValue;
            for (int i = 0; i < MyGraph.VertexCount; ++i)
                MyGraph[i, i] = 0;

            //Создаём слои-вершины--------------------------------------------
            VertexLayers = new List<ImageLayer>();//  new ImageLayer[MyGraph.VertexCount];
            for (int i = 0; i < MyGraph.VertexCount; ++i)
            {
                VertexLayers.Add(new ImageLayer(new Bitmap(VERTEX_SIZE + 1, VERTEX_SIZE + 1)));//[i] = new ImageLayer(new Bitmap(VERTEX_SIZE + 1, VERTEX_SIZE + 1));
                using (Graphics VertexPicture = VertexLayers[i].GetGraphics())
                {
                    VertexLayers[i].UseTransparentcy = true;
                    VertexLayers[i].TransparentColor = Color.Magenta;
                    VertexPicture.FillRectangle(Brushes.Magenta, new Rectangle(0, 0, VERTEX_SIZE, VERTEX_SIZE));
                    VertexPicture.FillEllipse(Brushes.White, 0, 0, 32, 32);
                    VertexPicture.DrawEllipse(new Pen(Color.Black, 1), 0, 0, VERTEX_SIZE, VERTEX_SIZE);
                    VertexPicture.DrawString(MyGraph[i], vertexNameFont, Brushes.Black, new PointF(10, 10));
                }
            }

            //-------------------------Если ошибка
            errEllipse = new Bitmap(VERTEX_SIZE + 1, VERTEX_SIZE + 1);
            using (Graphics gr = Graphics.FromImage(errEllipse))
            {
                gr.FillRectangle(Brushes.Magenta, new Rectangle(0, 0, VERTEX_SIZE, VERTEX_SIZE));
                gr.FillEllipse(Brushes.Red, 0, 0, 32, 32);
                gr.DrawEllipse(new Pen(Color.Black, 1), 0, 0, VERTEX_SIZE, VERTEX_SIZE);
            }
            //------------------------------------

            //Слой со стрелками
            ArrowsLayer = new ImageLayer(new Bitmap(pboxBackground.Width, pboxBackground.Height));

            //Начальное положение "планет"------------------------------------
            Random rnd = new Random();
            planets = new Planet[MyGraph.VertexCount];
            for (int i = 0; i < MyGraph.VertexCount; ++i)
            {
                bool goodPosition;
                double x, y;
                do
                {
                    goodPosition = true;
                    x = rnd.Next(500);
                    y = rnd.Next(500);
                    for (int j = 0; j < i; ++j)
                        if (j == i)
                            continue;
                        else
                            if (Math.Abs(planets[j].x - x) < 50 && Math.Abs(planets[j].y - y) < 50)
                                goodPosition = false;
                } while (!goodPosition);
                planets[i] = new Planet(x, y);
            }

            //Инициализируем инструменты
            moveMouseDown = new MouseEventHandler(moveMouseDownHandler);
            moveMouseMove = new MouseEventHandler(moveMouseMoveHandler);
            moveMouseUp = new MouseEventHandler(moveMouseUpHandler);

            //mergeMouseDown = new MouseEventHandler(mergeMouseDownHandler);
            //mergeMouseMove = new MouseEventHandler(mergeMouseMoveHandler);
            //mergeMouseUp = new MouseEventHandler(mergeMouseUpHandler);

            selectSccMouseClick = new MouseEventHandler(selectSccClickHandler);

            selectRMouseClick = new MouseEventHandler(selectRMouseClickHandler);
            selectQMouseClick = new MouseEventHandler(selectQMouseClickHandler);

            newVertexClick = new MouseEventHandler(newVertexClickHandler);
            newArrowClick = new MouseEventHandler(newArrowClickHandler);
            DisplayedGraph = MyGraph;
            FindSCCs();
            Utils.findGoodLocations(planets, MyGraph);
            Utils.setCoords(planets, VertexLayers, ClientSize.Width, ClientSize.Height, pboxBackground.Left, pboxBackground.Top);
            DrawArrows(-1);
            Refresh();
        }
コード例 #37
0
ファイル: CroppedImage.cs プロジェクト: dpawatts/zeus
        public string GetUrl(int width, int height, bool fill, DynamicImageFormat format, bool isResize)
        {
            //first construct the crop
            var imageSource = new ZeusImageSource();
            imageSource.ContentID = this.ID;

            if (this.Data == null)
                return "";

            // generate resized image url
            // set image format
            var dynamicImage = new SoundInTheory.DynamicImage.Composition();
            dynamicImage.ImageFormat = format;

            // create image layer wit ha source
            var imageLayer = new ImageLayer();
            imageLayer.Source = imageSource;

            // add filters
            if (!(TopLeftXVal == 0 && TopLeftYVal == 0 && CropWidth == 0 && CropHeight == 0))
            {
                var cropFilter = new CropFilter
                {
                    Enabled = true,
                    X = this.TopLeftXVal,
                    Y = this.TopLeftYVal,
                    Width = this.CropWidth,
                    Height = this.CropHeight
                };
                if (!isResize)
                    imageLayer.Filters.Add(cropFilter);
            }

            if (width > 0 && height > 0)
            {
                var resizeFilter = new ResizeFilter
                {
                    Mode = isResize ? ResizeMode.Uniform : ResizeMode.UniformFill,
                    Width = SoundInTheory.DynamicImage.Unit.Pixel(width),
                    Height = SoundInTheory.DynamicImage.Unit.Pixel(height)
                };
                imageLayer.Filters.Add(resizeFilter);
            }
            else if (width > 0)
            {
                var resizeFilter = new ResizeFilter
                {
                    Mode = ResizeMode.UseWidth,
                    Width = SoundInTheory.DynamicImage.Unit.Pixel(width)
                };
                imageLayer.Filters.Add(resizeFilter);
            }
            else if (height > 0)
            {
                var resizeFilter = new ResizeFilter
                {
                    Mode = ResizeMode.UseHeight,
                    Height = SoundInTheory.DynamicImage.Unit.Pixel(height)
                };
                imageLayer.Filters.Add(resizeFilter);
            }

            // add the layer
            dynamicImage.Layers.Add(imageLayer);

            // generate url
            return ImageUrlGenerator.GetImageUrl(dynamicImage);
        }