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

Переписать функцию под FMX


Lelik Lelikov

Вопрос

здравствуйте! помогите переписать функцию под fmx.

проблема с:

Assert(bitmap.PixelFormat in [pf24bit, pf32bit]);

и

BytesPerScanLine

function BitmapToIplImage(const bitmap:
{$IFDEF DELPHIXE2_UP}Vcl.Graphics.TBitmap{$ELSE}Graphics.TBitmap{$ENDIF}): PIplImage;

Var
  BMI: BITMAPINFO;
  MemDC: HDC;
  DS: TDIBSection;
  Bytes: Integer;
begin
  Assert(bitmap.PixelFormat in [pf24bit, pf32bit]); // only 24bit or 32bit

  ZeroMemory(@BMI, SizeOf(BMI));
  Bytes := GetObject(bitmap.Handle, SizeOf(DS), @DS);
  Assert(Bytes <> 0, 'InvalidBitmap');
  with bitmap, BMI.bmiHeader, DS.dsbm do
  begin
    biSize := SizeOf(BMI);
    biWidth := Width;
    biHeight := -Height;
    biPlanes := 1;
    biBitCount := bmBitsPixel * bmPlanes;
    biSizeImage := BytesPerScanLine(biWidth, biBitCount, 32) * Abs(biHeight);
  end;
  Result := cvCreateImage(cvSize(bitmap.Width, bitmap.Height), IPL_DEPTH_8U, BMI.bmiHeader.biBitCount div 8);
  MemDC := CreateCompatibleDC(0);
  SelectObject(MemDC, bitmap.Handle);
  GetDIBits(MemDC, bitmap.Handle, 0, bitmap.Height, Result^.ImageData, BMI, DIB_RGB_COLORS);
  DeleteDC(MemDC);
end;

 

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

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

Ответов пока нет

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

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

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

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

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

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

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

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...