Автоматические создание скриншота WPF
-
26 июля 2012 г. 13:47
Можно ли как то сделать скриншот определенной области в форме программы, и сохранить его с размерами 300х250?
Например слева в окне программы что-то создается, рисуется или перетаскивается, а при нажатии справа на кнопку, левый участок, со всеми данными (кнопками, текстами) сохраняется в изображение нужного размера... Реально такое сделать?
Все ответы
-
26 июля 2012 г. 14:19Отвечающий
var bmp = new WriteableBitmap(element, null);
var ms = new MemoryStream();
bmp.SaveJpeg(
ms,
(int)element.ActualWidth,
(int)element.ActualHeight,
0,
100);
ms.Seek(0, SeekOrigin.Begin);- Помечено в качестве ответа Siompc 26 июля 2012 г. 15:22
-
26 июля 2012 г. 14:52
SaveJpeg не является членом WriteableBitmap
Dim scrWidth As Integer = Screen.PrimaryScreen.Bounds.Width ' ширина экрана
Dim scrHeight As Integer = Screen.PrimaryScreen.Bounds.Height ' высота экрана
Dim bitmap As New Bitmap(850, 500)
Dim screenshot As Graphics = Graphics.FromImage(bitmap)
screenshot.CopyFromScreen(Me.Left, Me.Top, 0, 0, New Size(scrWidth, scrHeight)) '(size -Размер передаваемой области)
bitmap.Save("screen1.jpg", Imaging.ImageFormat.Jpeg)Кажется нашел такой вариант :)
- Помечено в качестве ответа Siompc 26 июля 2012 г. 15:23
-
26 июля 2012 г. 14:54Отвечающий
SaveJpeg не является членом WriteableBitmap
Dim scrWidth As Integer = Screen.PrimaryScreen.Bounds.Width ' ширина экрана
Dim scrHeight As Integer = Screen.PrimaryScreen.Bounds.Height ' высота экрана
Dim bitmap As New Bitmap(850, 500)
Dim screenshot As Graphics = Graphics.FromImage(bitmap)
screenshot.CopyFromScreen(Me.Left, Me.Top, 0, 0, New Size(scrWidth, scrHeight)) '(size -Размер передаваемой области)
bitmap.Save("screen1.jpg", Imaging.ImageFormat.Jpeg)Кажется нашел такой вариант :)
А это вариант с подключением WinForms (GDI+) рисования?
Посмотрите еще такой, может будет лучше работать:
Dim hpx As Integer Dim wpx As Integer hpx = 300 wpx = 250 Dim rtb As New RenderTargetBitmap(InkCanvas.ActualWidth * (wpx / 96), InkCanvas.ActualHeight * (wpx / 96), wpx, hpx, PixelFormats.Pbgra32) rtb.Render(InkCanvas) Dim jpg As New JpegBitmapEncoder() jpg.Frames.Add(BitmapFrame.Create(rtb)) Dim stm As IO.Stream = IO.File.Create("C:\new.jpg") Try jpg.Save(stm) Finally stm.Dispose() End Try
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
- Изменено LXGDARKMicrosoft Community Contributor, Editor 26 июля 2012 г. 14:56
-
26 июля 2012 г. 15:05ОтвечающийБрал код из WP7 приложения... Хорошо, что нашли другой вариант :)

