![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
LED |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 29.2.2008 Репутация: 1 Всего: 1 |
Нужен способ создать при выполнении битмап и нарислвать нечто в нем.
Как я понял, напрямую в битмапах рисовать нельзя, поэтому приходится создать HDC и рисовать в нем. Вопрос в том как сделать так, чтобы результаты рисования оказались потом в битмапе |
|||
|
||||
mekhanikus |
|
|||
Вольноопределяющийся ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 16.6.2008 Где: Спасск-Дальний Репутация: 1 Всего: 1 |
Например так:
|
|||
|
||||
LED |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 29.2.2008 Репутация: 1 Всего: 1 |
пробовал селектить битмап в хдц, потом копал в этот хдц из нужного, но когда переселектил битмап в другой хдц, в битмапе ничего того что рисовал не оказалось
|
|||
|
||||
BEOWOLF |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 24.8.2007 Репутация: 1 Всего: 2 |
Вот пример рабочей функции для снятия скриншота с экрана, функции передаётся rect-прямоугольная область, откуда берётся скриншот.
|
||||||
|
|||||||
LED |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 29.2.2008 Репутация: 1 Всего: 1 |
Писал такую функцию
При дальнейшем использовании полученного битмапа вижу белые прямоуголиник Код рисования внутри цикла while должен быть правильным (уже давно служит и отлажен) Где может быть косяк? |
|||
|
||||
LED |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 29.2.2008 Репутация: 1 Всего: 1 |
Нашел косяк, при новом копипасте неправильно исправил в двух мест
Если кому надо, конечный рабочий вариан
Это сообщение отредактировал(а) LED - 21.9.2008, 23:08 |
|||
|
||||
mekhanikus |
|
|||
Вольноопределяющийся ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 16.6.2008 Где: Спасск-Дальний Репутация: 1 Всего: 1 |
Код поковыряю на досуге.
А пока глупый вопрос. Ты, я так понял, Expand'иш Image? А нельзя ли для этого использовать StretchBlt? |
|||
|
||||
LED |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 29.2.2008 Репутация: 1 Всего: 1 |
Тут очень хитрый expand - рамка шириной в треть от всей картинки растягивается без изменения ширины. а внутренности заполняются сердцевиной.
|
|||
|
||||
malor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
У меня на третью строчку ругается:
Прописывание строки #include <Gdiplus.h> недостаточно? Это сообщение отредактировал(а) malor - 12.6.2011, 11:09 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
malor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Код такой:
После строки result = GetEncoderClsid(L"image/jpeg", &formatClsid); компилятор встает на строчку Gdiplus::Bitmap image(hBMP, 0); т.е. предыдущую строку кода, эффект как от нажатия клавиши F5 (идти до следующего breakpont'а). Зашел по F11 внутрь функции GetEncoderClsid(...): она там прекращает свое продвижение на строке GetImageEncodersSize(&num, &size); делая выход. Почему ? ![]() |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Либо вы пытаетесь отлаживать оптимизированный код, или забыли пересобрать код после модификаций сорцов.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |