Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2010, 13:04   #1
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию Делаю скриншот, на чёрном фоне белые точки.

Вот код, можете вставить его куда угодно и протестировать, скриншот появится на рабочем столе. Кто в курсе, почему когда я делаю скриншот рабочего стола, и например фоновая картинка тёмная, то в том месте, где чёрный цвет, появляется много белых точек на скриншоте.
Код:
..............
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);
        }
Casper-SC вне форума Ответить с цитированием
Старый 27.03.2010, 12:30   #2
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имеются координаты точки. Как проверить какого цвета соседние точки на форме? Rin Мультимедиа в Delphi 2 10.11.2009 22:47
даны две точки. организовать движение из точки А в точку Б окружности! Wi1D Помощь студентам 6 23.05.2009 19:55
Белые полосы при запуске Windows Jora Компьютерное железо 1 22.06.2008 18:02
Отбражение чисел - точки, это точки, а не запятые, обозначающие дробную часть Дикий Помощь студентам 7 12.05.2008 17:57