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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> скриншот части формы 
V
    Опции темы
IGV
Дата 28.4.2009, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



На форме есть SplitContainer. Мне нужно сделать скриншот одной из панелей.
Пытаюсь делать так
Код

            Bitmap bmpScreenShot = new Bitmap(splitContainer1.Panel2.Bounds.Width, splitContainer1.Panel2.Bounds.Height);
            Graphics gfx = Graphics.FromImage((Image) bmpScreenShot);
            Point screenPoint = new Point();
            splitContainer1.Panel2.PointToClient(screenPoint);
            gfx.CopyFromScreen(0, 0, 0, 0, new Size(splitContainer1.Panel2.Bounds.Width,
                                                                            splitContainer1.Panel2.Bounds.Height));
            bmpScreenShot.Save("temp.jpg", ImageFormat.Jpeg);

Что-то не получается. у метода CopyFromScreen, первые 4 параметра, что то у меня ничего меняют при изменении.
Что я делаю не так? или как лучше это написать?

PM MAIL ICQ   Вверх
DVariuS
Дата 28.4.2009, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 5
Всего: 8



Код

Bitmap bmpScreenShot = new Bitmap(splitContainer1.Panel2.Bounds.Width, splitContainer1.Panel2.Bounds.Height);
splitContainer1.Panel2.DrawToBitmap(bmpScreenShot, splitContainer1.Panel2.Bounds);
bmpScreenShot.Save("temp.jpg", ImageFormat.Jpeg);



Это сообщение отредактировал(а) DVariuS - 28.4.2009, 22:11
PM MAIL   Вверх
IGV
Дата 28.4.2009, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



не пойдет, там directx рисует
PM MAIL ICQ   Вверх
DVariuS
Дата 28.4.2009, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 5
Всего: 8



Цитата(IGV @ 28.4.2009,  21:14)
не пойдет, там directx рисует

А чем directx плох?

Ну а если мой метод не подходит - доработаем твой:
Код

            Bitmap bmpScreenShot = new Bitmap(splitContainer1.Panel2.Bounds.Width, splitContainer1.Panel2.Bounds.Height);
            Graphics gfx = Graphics.FromImage((Image)bmpScreenShot);
            Point point = splitContainer1.Panel2.Bounds.Location;
            point = splitContainer1.PointToScreen(point);
            gfx.CopyFromScreen(point.X, point.Y, 0, 0, new Size(splitContainer1.Panel2.Bounds.Width,
                                                                            splitContainer1.Panel2.Bounds.Height));
            bmpScreenShot.Save("temp.jpg", ImageFormat.Jpeg);

З.Ы. Должен работать - сам только-что проверял.  smile 

Это сообщение отредактировал(а) DVariuS - 28.4.2009, 22:36
PM MAIL   Вверх
IGV
Дата 29.4.2009, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ок, спасибо
PM MAIL ICQ   Вверх
-Mikle-
Дата 29.4.2009, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 17
Всего: 59



Цитата(IGV @  29.4.2009,  01:14 Найти цитируемый пост)
не пойдет, там directx рисует

Мне почему-то показалось, что имелось ввиду, что на панели DirectX рисует.

Потому что думаю, что все знают, что рисование контрола через вызов DrawToBitmap, ну никак не может происходить через DirectX!!! 


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
DVariuS
  Дата 29.4.2009, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 5
Всего: 8



Цитата(-Mikle- @ 29.4.2009,  07:35)
Цитата(IGV @  29.4.2009,  01:14 Найти цитируемый пост)
не пойдет, там directx рисует

Мне почему-то показалось, что имелось ввиду, что на панели DirectX рисует.

Потому что думаю, что все знают, что рисование контрола через вызов DrawToBitmap, ну никак не может происходить через DirectX!!!

Спасибо, а то я сразу не догнал  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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