Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > CreateStreamOnHGlobal |
Автор: Andrey44 22.6.2009, 10:01 | ||
Всем доброго утра. Вопрос в следующем: У меня есть набор байт - это картинка jpg которую я загружаю в массив из БД Потом мне эту картинку надо отобразить в окне, но что-то никак не могу это сделать. Вот код создания картинки из массива байт:
Подскажите, что не так делаю? Убил уже 2 часа времени и никак ![]() |
Автор: Andrey44 22.6.2009, 12:26 | ||||||
Все перепроверил, и получилось что не правильно читал и записывал байты в БД. Читал файл:
Теперь читаю:
Вот две картинки: 1)до сохранения http://ipicture.ru/ 2)после http://ipicture.ru/ Сохраняю картинку так:
Что делать, как читать и писать? ![]() |
Автор: Andrey44 22.6.2009, 12:49 | ||
С записью и чтением разобрался. Надо было добавить флаг
Теперь картинка получается как она должна быть, но теперь не могу нарисовать картинку. Как из массива байт получить картинку Gdiplus::Image? |
Автор: Andrey44 23.6.2009, 09:16 |
![]() Если сохранить массив байтов в файл и открыть его , то получается нормальная картинка, НО мне надо без сохранения в файл. Как из массива байтов получить Gdiplus::Image ??? |
Автор: jonie 23.6.2009, 09:36 |
http://www.eggheadcafe.com/forumarchives/win32programmergdi/Jan2006/post25116322.asp зачитай-ка. ну и вообще гугл - трабла-то стандартная должно быть. |
Автор: Andrey44 23.6.2009, 09:57 |
jonie, спасибо за помощь, уже разобрался. Я освобождал память ::GlobalFree(hBuffer);, а картинка думала что с памятью у нее все нормально ![]() Теперь переписал ::CreateStreamOnHGlobal(hBuffer, FALSE, &pStream) на ::CreateStreamOnHGlobal(hBuffer, TRUE, &pStream), теперь память освобождается когда картинка умирает. А я столько времени потратил! |