Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Canvas_MouseUp(object sender, MouseEventArgs e)
- {
- leftMouseDown = false;
- var curLayer = GetItemsPanel((canvasDataBinding.ItemContainerGenerator.ContainerFromIndex(0)));
- exportToImage(curLayer.ActualWidth, curLayer.ActualHeight, curLayer);
- //Thread RASTERIZE_THREAD = new Thread(new ThreadStart(() => { exportToImage(curLayer.ActualWidth, curLayer.ActualHeight, curLayer); }));
- //RASTERIZE_THREAD.Start();
- }
- ...
- void exportToImage(double width, double height, Visual visual)
- {
- var filename = string.Format(@"{0}.png", Guid.NewGuid());
- var tempFile = Path.Combine(tempDir, filename);
- Rect rect = new Rect(0, 0, width, height);
- this.Dispatcher.BeginInvoke(new Action(() =>
- {
- RenderTargetBitmap rtb = new RenderTargetBitmap((int)rect.Right,
- (int)rect.Bottom, 96d, 96d, System.Windows.Media.PixelFormats.Default);
- rtb.Render(visual);
- //endcode as PNG
- BitmapEncoder pngEncoder = new PngBitmapEncoder();
- pngEncoder.Frames.Add(BitmapFrame.Create(rtb));
- //save to memory stream
- System.IO.MemoryStream ms = new System.IO.MemoryStream();
- pngEncoder.Save(ms);
- ms.Close();
- System.IO.File.WriteAllBytes(tempFile, ms.ToArray());
- updateCanvas(tempFile);
- this.Title = "images in canvas after rasterizing: " + canvasImages[0].Count;
- }), DispatcherPriority.Background);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement