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

VCL procedure to FMX


randydom

Вопрос

Hello , please can someone helps me porting this VCL procedure into FMX : 

procedure AssignBmp(SrcBmp,DstBmp:TBitmap);
var
  _pxlSize : integer;
begin
  if (SrcBmp.Width * SrcBmp.Height) = 0 then Exit;
  // 0 size 
  case SrcBmp.PixelFormat of
    pf8bit:  _pxlSize := 1;
    pf16bit: _pxlSize := 2;
    pf24bit: _pxlSize := 3;
    pf32bit: _pxlSize := 4;
    else
      raise Exception.Create('AssignBmp Error :  Unknown PixelFormat .');
  end;

  try
    if SrcBmp.PixelFormat <> DstBmp.PixelFormat 
        then 
          // assign the source bitmap pix-format to the target bitmap
            DstBmp.PixelFormat := SrcBmp.PixelFormat;

    if SrcBmp.Width  <> DstBmp.Width  
        then 
    // assign the source bitmap width to the target bitmap width
            DstBmp.Width  := SrcBmp.Width;
    if SrcBmp.Height <> DstBmp.Height 
        then 
            DstBmp.Height := SrcBmp.Height;
    // copy the source bitmap to the target one 
    Move(
      SrcBmp.ScanLine[SrcBmp.Height-1]^,
      DstBmp.ScanLine[DstBmp.Height-1]^,
      SrcBmp.Width * SrcBmp.Height * _pxlSize
    );
  except
    on E : Exception do raise Exception.Create('AssignBmp Error : ' + E.Message );
  end;

so many thanks .

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

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

  • 0
8 часов назад, randydom сказал:

this VCL procedure

Your code can be replaced with:

var
  Stream: TStream;
begin
  Stream:=TMemoryStream.Create;
  try
    SourceBitmap.SaveToStream(Stream);
    Stream.Seek(0, soBeginning);
    NewBitmap.LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;

 

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

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

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

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

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

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

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

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

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

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

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