Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скриншот делается, но с багами. Картинка в теме. Пример кода и скрин бага в теме.  
:(
    Опции темы
CasperSC
Дата 26.3.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 27.11.2009

Репутация: нет
Всего: 1



Вот код, можете вставить его куда угодно и протестировать, скриншот появится на рабочем столе. Кто в курсе, почему когда я делаю скриншот рабочего стола (да чего угодно), и например фоновая картинка тёмная, то в том месте, где чёрный цвет, появляется много белых точек на скриншоте. 

Код

..............
using System.Drawing;
using System.Drawing.Imaging;
..............

        public void CreateScreenshot()
        {
            Bitmap bmpScreenshot;
            Graphics gfxScreenshot;
            bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppPArgb);
            gfxScreenshot = Graphics.FromImage(bmpScreenshot);
            gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0,
                Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
            
           bmpScreenshot.Save(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "\\Image.png", 
                ImageFormat.Png);
        }


user posted image
PM MAIL   Вверх
CasperSC
Дата 27.3.2010, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 27.11.2009

Репутация: нет
Всего: 1



Подсказали на другом форуме. надо изменить PixelFormat.Format32bppPArgb замени на PixelFormat.Format32bppRgb. Я раньше пробовал менять пиксель формат, но не там оказывается. Моя прога сначало фоткает экран весь. Открывается окно formBack растягивается на весь экран и становиться поверх всех окон, вырисовывает на себе скриншот. Сразу же после этого растягивается на весь экран form1 с прозрачностью 30%, жёлтым фоном и свойством TransparencyKey == Color.White; Далее я выделяю область курсором мыши, отрисовываю прямоугольник, заливаю его белым цветом, чтобы он внутри стал прозрачным и соответстенно выделялся, тем что внутри прямоугольника видно скриншот в нормальном цвете, как в "Ножницы", в Windows 7. Так вот она 2 раза применяет фотографирование экрана в 2-ух разных методах (прога тестовая, научиться это делать, а уже потом к себе в проект добавлять, поэтому не заморачивался писать правильно в одном методе с параметрами) и я не в том месте менял это значение.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0402 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.