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); }
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++; } } }
private void Image_RotateDown(object sender, MouseButtonEventArgs e) { ImageModelStatic.RotateImage(sender as Image); }