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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2011, 06:57   #1
tuip
Новичок
Джуниор
 
Регистрация: 26.01.2011
Сообщений: 2
По умолчанию Получить хендл битмапа

Есть код, правда на Freebasic. Он захватывает кадр видео и сохраняет в файл. Как можно без сохранения ( и последующей загрузки) получить дескриптор битмапа, чтобы испольовать изображение скажем на Static контрол. На соответствующем форуме по языку FreeBasic задал вопрос, но англичане игнорируют(скорее всего не понимают перевод от Google), а на русском активности пользователей совсем нет. Помогите пожалуйста. Буду рад любому примеру.

Код:
Dim As LongInt frame
	IMediaSeeking_GetPositions(ctx->medseek,@frame,NULL)

	'//получаем кадр
	Dim As Long lBufSize
	IBasicVideo_GetCurrentImage(ctx->basvideo,@lBufSize,NULL)
	Dim As Long pDIB=Allocate(lBufSize)
	IBasicVideo_GetCurrentImage(ctx->basvideo,@lBufSize,pDIB)
	Dim As HANDLE fh
	Dim As BITMAPFILEHEADER bmphdr
	Dim As BITMAPINFOHEADER bmpinfo
	Dim As DWORD nWritten
	Dim As Integer  height_
	IBasicVideo_get_SourceHeight(ctx->basvideo,@height_)
	Dim As Integer  Width_
	IBasicVideo_get_SourceWidth(ctx->basvideo,@Width_)
	bmphdr.bfType = 19778
	bmphdr.bfSize = sizeof(bmphdr) + sizeof(bmpinfo) + lbufSize
	bmphdr.bfOffBits = sizeof(bmphdr) + sizeof(bmpinfo)
	bmpinfo.biSize = sizeof(bmpinfo)
	bmpinfo.biWidth = Width_
	bmpinfo.biHeight = height_
	bmpinfo.biPlanes = 1
	bmpinfo.biBitCount = 32

	fh = CreateFile("result.bmp",GENERIC_WRITE, 0, NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)
	WriteFile(fh, @bmphdr, sizeof(bmphdr), @nWritten, NULL)
	WriteFile(fh,@bmpinfo, sizeof(bmpinfo), @nWritten, NULL)
	WriteFile(fh, pDIB, lbufSize, @nWritten, NULL)
	CloseHandle(fh)
tuip вне форума Ответить с цитированием
Старый 27.01.2011, 15:45   #2
tuip
Новичок
Джуниор
 
Регистрация: 26.01.2011
Сообщений: 2
По умолчанию

Вопрос снят. Решил таким образом(принцип):

1) копирую в общий массив данных при помощи RtlMoveMemory
2) получаю хендл при помощи CreateDIBitmap
tuip вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запись битмапа в файл SunKnight Общие вопросы Delphi 8 09.06.2008 08:56
Как имея хендл на Memo получить выделенный в нем текст? hoza_syl Помощь студентам 2 23.05.2008 17:06
Как ускорить загрузку битмапа в tImage Altera Мультимедиа в Delphi 10 24.03.2008 17:39
Сжатие битмапа Rapid Мультимедиа в Delphi 7 08.12.2007 16:38
Как получить изображение, если я знаю его хендл? AidarBik Win Api 4 05.11.2007 15:54