Esempio n. 1
0
        public List <System.Windows.Controls.Image> PuzzleImage(int col, int row)
        {
            var bitmaps = new List <System.Windows.Controls.Image>();

            System.IO.Directory.CreateDirectory(path);

            Rectangle rectangle = new Rectangle(0, 0, 0, 0);
            int       x = 0, y = 0, w = 0, h = 0;
            int       baseWidth  = image.Width / row;
            int       baseHeight = image.Height / col;
            string    imageName  = path.Split('\\').Last();

            for (int c = 0; c < col; c++)
            {
                for (int r = 0; r < row; r++)
                {
                    x = r * baseWidth;
                    y = c * baseHeight;
                    Image bitmap = CropImage(new Rectangle(x, y, baseWidth, baseHeight));
                    bitmap.Save(path + "//" + imageName + "_" + c + "_" + r + ".png");

                    var contrImage = new System.Windows.Controls.Image();
                    contrImage.Source = ImageModelStatic.ToWpfImage(bitmap);
                    contrImage.Tag    = Convert.ToString(c + "_" + r);
                    ImageModelStatic.RotateImage(contrImage);

                    bitmaps.Add(contrImage);
                }
            }

            return(bitmaps);
        }
Esempio n. 2
0
        private void SetImages(List <Image> bitmaps, int row, int col)
        {
            bitmaps = ImageModelStatic.Shuffle(bitmaps);

            int x = 0, y = 0, bitmapsIter = 0;

            System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(Convert.ToInt32(bitmaps.First().Source.Width), Convert.ToInt32(bitmaps.First().Source.Height));
            using (System.Drawing.Graphics graph = System.Drawing.Graphics.FromImage(bmp))
            {
                System.Drawing.Rectangle ImageSize = new System.Drawing.Rectangle(0, 0, Convert.ToInt32(bitmaps.First().Source.Width),
                                                                                  Convert.ToInt32(bitmaps.First().Source.Height));
                graph.FillRectangle(System.Drawing.Brushes.White, ImageSize);
            }
            for (int c = 0; c < col; c++)
            {
                for (int r = 0; r < row; r++)
                {
                    var imageControl = bitmaps[bitmapsIter];
                    imageControl.SetValue(TagProperty, bitmaps[bitmapsIter].Tag.ToString());
                    imageControl.SetValue(Grid.RowProperty, x);
                    imageControl.SetValue(Grid.ColumnProperty, y);
                    imageControl.MouseLeftButtonDown  += new MouseButtonEventHandler(Image_MouseDown);
                    imageControl.MouseRightButtonDown += new MouseButtonEventHandler(Image_RotateDown);
                    borderStart.Children.Add(imageControl);

                    var imageControl1 = new Image();
                    imageControl1.Source = ImageModelStatic.ToWpfImage(bmp);
                    imageControl1.SetValue(Grid.RowProperty, x);
                    imageControl1.SetValue(Grid.ColumnProperty, y);
                    imageControl1.AllowDrop = true;
                    imageControl1.Drop     += new DragEventHandler(Image_Drop);
                    imageControl1.SetValue(TagProperty, "");
                    borderEnd.Children.Add(imageControl1);

                    bitmapsIter++;
                }
            }
        }
Esempio n. 3
0
 private void Image_RotateDown(object sender, MouseButtonEventArgs e)
 {
     ImageModelStatic.RotateImage(sender as Image);
 }