2014-09-01 10 views
1

Я тестирую несколько реализаций функций захвата экрана на Windows Mobile.Захват экрана с помощью OpenNetCF - Отсутствует заголовок/заголовок страницы

Использование SO, я нашел следующий метод по @ctacke использования OpenNetCF.Drawing библиотеки (http://blog.opennetcf.com/2009/03/11/screen-capture-in-the-compact-framework/):

// create a bitmap and graphics objects for the capture 
Drawing.Bitmap destinationBmp = new Drawing.Bitmap(Forms.Screen.PrimaryScreen.Bounds.Width, Forms.Screen.PrimaryScreen.Bounds.Height); 
Drawing.Graphics g = Drawing.Graphics.FromImage(destinationBmp); 
GraphicsEx gx = GraphicsEx.FromGraphics(g); 

// capture the current screen 
gx.CopyFromScreen(0, 0, 0, 0, Forms.Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy); 

// save the file 
destinationBmp.Save(filename, System.Drawing.Imaging.ImageFormat.Png); 

// clean house 
gx.Dispose(); 
g.Dispose(); 
destinationBmp.Dispose(); 

Я пытался проверить этот метод на простых приложениях на Windows Mobile 6.5 VGA Emulator и получить результат без присмотра:

Сохраненное изображение имеет нужный размер (480x640), но содержимое не является полной копией моего экрана: отсутствует часть заголовка, а нижняя часть - «черная» (отсутствующий пиксель) линии черные).

Пробуждение на эмуляторе Windows Mobile 6, получило ту же проблему. Как получить весь экран?

ответ

2

мне удалось найти решение путем изменения полей X и Y от CopyFromScreen вызова, используя свойства PrimaryScreen.WorkingArea:

gx.CopyFromScreen(-Forms.Screen.PrimaryScreen.WorkingArea.X, -Forms.Screen.PrimaryScreen.WorkingArea.Y, 0, 0, Forms.Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy); 

Редактирование этой линии таким образом, я получил все экрана.

 Смежные вопросы

  • Нет связанных вопросов^_^