Exemplo n.º 1
0
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    FramedImage?.Dispose();
                }

                disposedValue = true;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Parcing images data from files to FramesImages list
        /// </summary>

        private static bool TryToParceFramedImages()
        {
            if (PathToTxtFile == string.Empty)
            {
                return(false);
            }

            try
            {
                List <FramedImage> parcedImages = new List <FramedImage>();

                using (StreamReader sr = new StreamReader(PathToTxtFile))
                {
                    string currentLine;
                    while ((currentLine = sr.ReadLine()) != null)
                    {
                        if (currentLine != "")
                        {
                            string[]     splitedLine   = currentLine.Split(',');
                            List <Frame> currentFrames = new List <Frame>();
                            for (int indexOfStartFramePos = 1; indexOfStartFramePos <= splitedLine.Length - 4; indexOfStartFramePos += 4)
                            {
                                Frame frame = new Frame();
                                frame.TopLeftX     = int.Parse(splitedLine[indexOfStartFramePos]);
                                frame.TopLeftY     = int.Parse(splitedLine[indexOfStartFramePos + 1]);
                                frame.BottomRightX = int.Parse(splitedLine[indexOfStartFramePos + 2]);
                                frame.BottomRightY = int.Parse(splitedLine[indexOfStartFramePos + 3]);
                                currentFrames.Add(frame);
                            }
                            FramedImage currentImage = new FramedImage();
                            currentImage.source = splitedLine[0];
                            currentImage.frames = currentFrames;
                            parcedImages.Add(currentImage);
                        }
                    }
                }

                FramedImages = parcedImages;
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Exemplo n.º 3
0
        private void LoadImages()
        {
            FramedImage[] arr = new FramedImage[]
            {
                // bases
                new FramedImage(CreateGsImage(@"Images\Bases\towerBase.png"), "towerBase", false, 0, 0),

                // enemies ( all enemies are animated to avoid exceptions )
                new FramedImage(CreateGsImage(@"Images\Enemies\walker.png"), "walker", true, 4, 1),
                new FramedImage(CreateGsImage(@"Images\Enemies\biker.png"), "biker", true, 4, 1),
                new FramedImage(CreateGsImage(@"Images\Enemies\flapper.png"), "flapper", true, 5, 1),
                new FramedImage(CreateGsImage(@"Images\Enemies\glider.png"), "glider", true, 4, 1),

                // towers
                new FramedImage(CreateGsImage(@"Images\Towers\railgun.png"), "railgun", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Towers\turret.png"), "turret", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Towers\missileLauncher.png"), "missileLauncher", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Towers\shockwaveGenerator.png"), "shockwaveGenerator", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Towers\speedbump.png"), "speedbump", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Towers\sprinkler.png"), "sprinkler", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Towers\teslaCoil.png"), "teslaCoil", true, 5, 1),
                new FramedImage(CreateGsImage(@"Images\Towers\machinegun.png"), "machinegun", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Towers\flamethrower.png"), "flamethrower", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Towers\seeker.png"), "seeker", false, 0, 0),

                // projectiles
                new FramedImage(CreateGsImage(@"Images\Projectiles\rocket.png"), "rocket", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Projectiles\bullet.png"), "bullet", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Projectiles\pulse.png"), "pulse", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Projectiles\debri.png"), "debri", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Projectiles\fragment.png"), "fragment", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Projectiles\lightning.png"), "lightning", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Projectiles\flame.png"), "flame", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Projectiles\flamewave.png"), "flamewave", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Projectiles\wave.png"), "wave", false, 0, 0),
                new FramedImage(CreateGsImage(@"Images\Projectiles\lockmissile.png"), "lockmissile", false, 0, 0),
            };

            foreach (var d in arr)
            {
                images[d.Key] = d;
            }
        }
Exemplo n.º 4
0
        public static List <FramedImage> GetProcessedFramedImages(List <FramedImage> sourceImages, List <int> effects)
        {
            bool needCrop   = effects.Contains(EditPageVM.EFFECT_CROP);
            bool needRotate = effects.Contains(EditPageVM.EFFECT_ROTATE);

            if (!needCrop && !needRotate)
            {
                return(sourceImages);
            }

            List <FramedImage> processedImages = sourceImages;
            int rotationCount = effects.FindAll(element => element.Equals(EditPageVM.EFFECT_ROTATE)).Count;
            int indent        = EditPageVM.IndentToCrop;

            // Processing frames
            for (int i = 0; i < processedImages.Count; i++)
            {
                FramedImage currentImage = processedImages[i];
                var         source       = new BitmapImage(new Uri(currentImage.source));
                int         width        = source.PixelWidth;
                int         height       = source.PixelHeight;
                // Cropping frames
                if (needCrop)
                {
                    currentImage.frames = CropFrames(width, height, indent, currentImage.frames);
                    width  -= 2 * indent;
                    height -= 2 * indent;
                }
                // Rotating frames
                for (int rotation = 0; rotation < rotationCount; rotation++)
                {
                    currentImage.frames = RotateFrames90(currentImage.frames, width);
                    int temp = width;
                    width  = height;
                    height = temp;
                }

                processedImages[i] = currentImage;
            }
            return(processedImages);
        }
Exemplo n.º 5
0
        private void LoadImages()
        {
            FramedImage[] images = new FramedImage[]
            {
                // bases
                new FramedImage(LoadTexture(@"Images\Bases\towerBase"), "towerBase", false, 0, 0),

                // enemies ( all enemies are animated to avoid exceptions )
                new FramedImage(LoadTexture(@"Images\Enemies\walker"), "walker", true, 4, 1),
                new FramedImage(LoadTexture(@"Images\Enemies\biker"), "biker", true, 4, 1),
                new FramedImage(LoadTexture(@"Images\Enemies\flapper"), "flapper", true, 5, 1),
                new FramedImage(LoadTexture(@"Images\Enemies\glider"), "glider", true, 4, 1),

                // towers
                new FramedImage(LoadTexture(@"Images\Towers\railgun"), "railgun", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Towers\turret"), "turret", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Towers\missileLauncher"), "missileLauncher", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Towers\shockwaveGenerator"), "shockwaveGenerator", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Towers\speedbump"), "speedbump", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Towers\sprinkler"), "sprinkler", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Towers\teslaCoil"), "teslaCoil", true, 5, 1),
                new FramedImage(LoadTexture(@"Images\Towers\machinegun"), "machinegun", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Towers\flamethrower"), "flamethrower", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Towers\seeker"), "seeker", false, 0, 0),

                // projectiles
                new FramedImage(LoadTexture(@"Images\Projectiles\rocket"), "rocket", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Projectiles\bullet"), "bullet", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Projectiles\pulse"), "pulse", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Projectiles\debri"), "debri", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Projectiles\fragment"), "fragment", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Projectiles\lightning"), "lightning", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Projectiles\flame"), "flame", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Projectiles\flamewave"), "flamewave", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Projectiles\wave"), "wave", false, 0, 0),
                new FramedImage(LoadTexture(@"Images\Projectiles\lockmissile"), "lockmissile", false, 0, 0),
            };

            Images = images.ToDictionary(k => k.Key, v => v);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Creates new processed marker files and images
        /// </summary>
        public async void CreateImagesAsync()
        {
            try
            {
                // Show the FolderBrowserDialog.
                var          folderBrowserDialog = new FolderBrowserDialog();
                DialogResult dialogResult        = folderBrowserDialog.ShowDialog();
                if (dialogResult == System.Windows.Forms.DialogResult.OK)
                {
                    await Task.Run(() =>
                    {
                        string folder = folderBrowserDialog.SelectedPath;
                        // If framed type
                        if (MarkerType == UserData.MARKER_TYPE_FRAME)
                        {
                            // Asking for a new file
                            string caption                    = "Create new marker file?";
                            string messageBoxText             = "Press 'Yes' if you want to create new marker file. Or 'No' if you want to add markers to current file.";
                            MessageBoxButton button           = MessageBoxButton.YesNoCancel;
                            MessageBoxImage icon              = MessageBoxImage.Question;
                            MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show(messageBoxText, caption, button, icon);

                            // Setting file to write
                            string pathToMarkerFile;
                            if (messageBoxResult == MessageBoxResult.Yes)
                            {
                                pathToMarkerFile = CreateNewPath(folder, UserData.PathToTxtFile);
                            }
                            else
                            {
                                if (messageBoxResult == MessageBoxResult.No)
                                {
                                    pathToMarkerFile = UserData.PathToTxtFile;
                                }
                                else
                                {
                                    return;
                                }
                            }

                            DisableViews();
                            List <FramedImage> processedImages = new List <FramedImage>(UserData.FramedImages);
                            // Processing frames
                            processedImages = FileProcess.GetProcessedFramedImages(processedImages, Effects);

                            // Creating new processed images
                            for (int i = 0; i < processedImages.Count; i++)
                            {
                                CreateImagesBTN_Content = "Saving: " + (i + 1) + "/" + processedImages.Count;
                                FramedImage newImage    = new FramedImage();
                                newImage.source         = CreateProcessedImage(folder, processedImages[i].source);
                                newImage.frames         = processedImages[i].frames;
                                processedImages[i]      = newImage;
                            }

                            // Parcing to writeble format
                            var parcedLines = FileProcess.ParceFramedImages(processedImages);

                            // Writing processed images
                            using (StreamWriter sw = new StreamWriter(pathToMarkerFile, true))
                            {
                                sw.Write("\n");
                                foreach (var line in parcedLines)
                                {
                                    sw.WriteLine(line);
                                }
                            }
                        }
                        // If masked type
                        else
                        {
                            DisableViews();
                            // Creating new processed images
                            int countOfParcedImages = UserData.MaskedImages.Count;
                            for (int i = 0; i < countOfParcedImages; i++)
                            {
                                CreateImagesBTN_Content = "Saving: " + (i + 1) + "/" + countOfParcedImages;
                                CreateProcessedImage(folder, UserData.MaskedImages[i].source);
                                CreateProcessedMask(folder, UserData.MaskedImages[i]);
                            }
                        }
                        GC.Collect();
                    });
                }
                ValidateViewsEnablity();
            }
            catch (Exception e)
            {
                string           messageBoxText = e.Message;
                string           caption        = "Couldn't save the image";
                MessageBoxButton button         = MessageBoxButton.OK;
                MessageBoxImage  icon           = MessageBoxImage.Error;
                System.Windows.MessageBox.Show(messageBoxText, caption, button, icon);
                ValidateViewsEnablity();
            }
        }
Exemplo n.º 7
0
 internal void ResetOffsetsToDefault()
 {
     FramedImage.ResetOffsetsToDefault();
 }