Перейти к содержанию
Fire Monkey от А до Я
  • 0

[WIN] [FMX] [ANDROID] Конвертер HBITMAP в TBitmap


hryasch

Вопрос

Добрый день. Существует одна проблема, с которой уже несколько недель не могу справиться. Есть старый код под WinAPI, его нужно переделать под Android через firemonkey. И главная проблема - есть код, который из собственного формата делает HBITMAP из WinAPI. Фактически это структура, где последнее поле - указатели на биты. Это переделать легко, создав собственную копию такой структуры. Но теперь мне нужно перевести ее в TBitmap, и я не очень понимаю как это сделать.
 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

HBITMAP — это и есть VCL.TBitmap

var
  hWinDC   : THandle;
  w, h     : integer;
  tmpStream: TMemoryStream;
begin
  GetTargetDimensions(w, h);
  hWinDC           := GetWindowDC(TargetHandle);
  BitmapVCL.Width  := w;
  BitmapVCL.Height := h;
  hWinDC           := GetWindowDC(TargetHandle);
  BitBlt(BitmapVCL.Canvas.Handle, 0, 0, BitmapVCL.Width, BitmapVCL.Height, hWinDC, 0, 0, SRCCOPY);
  ReleaseDC(TargetHandle, hWinDC);
  tmpStream := TMemoryStream.Create;
  try
    BitmapVCL.SaveToStream(tmpStream);
    BitmapFMX.LoadFromStream(tmpStream);
  finally
    tmpStream.Free;
  end;
end;

 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...