Форум программистов, компьютерный форум CyberForum.ru

HBITMAP, CImage, BITMAP, CBitmap. Заблудился в трех березах. Где же выход? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Воспользоваться методом: А)Сортировки прямым выбором; Б) «шейкерной» сортировки. http://www.cyberforum.ru/cpp-beginners/thread540591.html
Даны действительные числа a_1,…,a_n. Получить попарно различные целые j_1,…,j_n, такие, что 1≤k_j≤n,k=1,…,n, и a_j1≥a_j2≥⋯≥a_jn. Воспользоваться методом: А)Сортировки прямым выбором; Б) «шейкерной» сортировки.
C++ нужна оптимизация приложения Одной ночью коту Мурзику приснилось, что он судья на математических соревнованиях крыс. Соревнования проводятся среди N команд по K крыс в каждой. Соревнования проводятся в К раундов, в каждом из которых представитель команды называет число. Побеждает та команда, у которой произведение всех чисел наибольшее. Почему крысы не называют каждый раз максимально возможное число? На то они и крысы, что... http://www.cyberforum.ru/cpp-beginners/thread540590.html
Реализовать подпрограммы посредством: А) процедур; Б) функции. C++
По заданным вещественным числам a_0,a_1,… ,a_30,b_0 ,b_1,… b_30,c_0,c_1,…,c_30,x,y,z. вычислить величину ((a_0 x^30+a_1 x^29+⋯+a_30 )^2-(b_0 y^30+b_1 y^29+⋯+b_30 ))/(c_0 (x+z)^30+c_1 (x+z)^29+⋯+c_30 ) Реализовать подпрограммы посредством: А) процедур; Б) функции.
C++ Дан файл f:file of real. Найти наибольшее из значений компонент.
Дан файл f:file of real. Найти наибольшее из значений компонент.
C++ Сортировка(2) http://www.cyberforum.ru/cpp-beginners/thread540585.html
Во входном файле содержится информация об каждом из n студентов некоторого вуза, разделённого пробелами: 〈фамилия〉 〈имя〉 〈отчество〉 〈пол〉 〈возраст〉〈курс〉, причем в фамилии – не более 12 букв, пол указывается буквами М и Ж, возраст – целое от 16 до 35, курс – целое от 1 до 5. Ввести эту информацию и напечатать номер курса, на котором наибольший процент мужчин.
C++ Сортировка Даны действительные числа a_1,…,a_n. Получить попарно различные целые j_1,…,j_n, такие, что 1≤k_j≤n,k=1,…,n, и a_j1≥a_j2≥⋯≥a_jn. Воспользоваться методом: А)Сортировки прямым выбором; Б) «шейкерной» сортировки. подробнее

Показать сообщение отдельно
direct
0 / 0 / 0
Регистрация: 06.07.2010
Сообщений: 21

HBITMAP, CImage, BITMAP, CBitmap. Заблудился в трех березах. Где же выход? - C++

06.04.2012, 15:12. Просмотров 1147. Ответов 0
Метки (Все метки)

имеется: дискриптор картинки с диска, структура BITMAP заполненная в соответствии с этой картинкой, объект CBitmap с "прикрепленным" дискриптором, все это очень замечательно выводится на экран.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*CString name;
    CRect rc;   
    HANDLE hBmp;
    BITMAP bm;
    HBITMAP   hbmpOld, hToSave;   - объявлены и опредлены в другом месте*/
 
           CClientDC dc(this);  
    CDC       dcMem;
    CBitmap   m_bmpBack;
 
    GetClientRect(&rc);  
    hBmp = LoadImage(NULL,name,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);   
    GetObject ( hBmp, sizeof(bm), &bm );    
    m_bmpBack.Attach(hBmp); 
 
           dcMem.CreateCompatibleDC(&dc);
           hbmpOld = (HBITMAP)dcMem.SelectObject(m_bmpBack);    
 
    dc.StretchBlt(rc.left, rc.top, rc.right, rc.bottom,&dcMem, 0, 0, (int)bm.bmWidth, (int)bm.bmHeight, SRCCOPY);   
    dcMem.SelectObject(hbmpOld);
Хочу:
С помощью класса СImage сохранить из какого-либо из указаных объектов новый файл на диск, делаю в соответствии со всякой справочной литературой так:

C++
1
2
3
4
HBITMAP hToSave = (HBITMAP)m_bmpBack.GetSafeHandle();
CImage myImage; 
myImage.Attach(hToSave);
myImage.Save(L"d:/image3.jpg");
файл создается но в нем чернота, а должен быть андреевский флаг. Хотя при таком варианте (то есть без рисования и загрузки через дискрипторы):

C++
1
2
3
CImage myImage; 
myImage.Load(L"d:/bmp.bmp");    
myImage.Save(L"d:/image3.jpg");
все работает прекрасно. Похоже потери какие-то происходят при формировании HBITMAPа... Какие??? Кто чем можите поможите) Как запихнуть в CImage картинку нарисованную в контексте устройства?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru