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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2011, 09:14   #1
metoflex
Пользователь
 
Регистрация: 21.06.2009
Сообщений: 37
Вопрос Вывод картинки в CStatic

Приветствую!

У меня в наличии имеется массив пикселей картинки (24 бита есть массив и есть массив на 16 бит).

Вывод реализую так:

Код:
int bitsPerPexel = 24;
   unsigned int** masspixel24bits;
   BITMAP BitMap;
   CBitmap bmp;    

**************
    BitMap.bmType = 0;
    BitMap.bmWidth  = pConvertImage->sizeimg[width];
    BitMap.bmHeight = pConvertImage->sizeimg[height];

    BitMap.bmPlanes = 1;

    BitMap.bmBitsPixel = bitsPerPexel;

    BitMap.bmWidthBytes = (bitsPerPexel/8) * pConvertImage->sizeimg[width];

    BitMap.bmBits = &masspixel24bits[0][0];    
    
    bmp.CreateBitmapIndirect(&BitMap);    (Возвращает единицу)

    pixelimg.SetBitmap(bmp);   (Возвращает NULL)


Подскажите пожалуйста в чем мб ошибка??

Уже третий день с этим выводом мучаюсь..

Спасибо!
metoflex вне форума Ответить с цитированием
Старый 18.07.2011, 11:04   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
Сообщение от metoflex Посмотреть сообщение
pixelimg.SetBitmap(bmp); (Возвращает NULL)
Возвращается предыдущий HBITMAP, и если его не было, разумеется вернет NULL.
Проверь:
Код:
HBITMAP hb = pixelimg.GetBitmap();
Потом, может быть его окно не имеет стиля SS_BITMAP, надо бы поставить.
И еще, каждый элемент массива masspixel24bits у тебя int.
Врядли sizeof(int)==24
Посмотри требования bmWidthBytes к выравниванию.
EUGY вне форума Ответить с цитированием
Старый 18.07.2011, 11:06   #3
metoflex
Пользователь
 
Регистрация: 21.06.2009
Сообщений: 37
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
Возвращается предыдущий HBITMAP, и если его не было, разумеется вернет NULL.
Проверь:
Код:
HBITMAP hb = pixelimg.GetBitmap();
Потом, может быть его окно не имеет стиля SS_BITMAP, надо бы поставить.
И еще, каждый элемент массива masspixel24bits у тебя int.
Врядли sizeof(int)==24
Посмотри требования bmWidthBytes к выравниванию.
Ок Сейчас посмотрю
metoflex вне форума Ответить с цитированием
Старый 18.07.2011, 11:34   #4
metoflex
Пользователь
 
Регистрация: 21.06.2009
Сообщений: 37
По умолчанию

Задачу решил!

Вечером напишу решение!
metoflex вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод картинки из БД в TImage Pronja C++ Builder 0 15.05.2011 00:53
Вывод картинки попиксельно SmilingBull Мультимедиа в Delphi 6 11.01.2011 02:01
вывод картинки на экран RakovEV Win Api 7 09.05.2010 12:30
Вывод картинки с рамкой Syltan PHP 6 10.03.2010 02:18
вывод картинки на экран Olejik Общие вопросы C/C++ 6 15.09.2009 20:43