Графика

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Графика

Сообщение gusluk » 12.04.2012 08:40:06

Как заполнить PaintBox пикселями произвольного цвета? В делфи есть функция Scanline, есть ли в Лазарусе что либо похожее?
gusluk
незнакомец
 
Сообщения: 3
Зарегистрирован: 11.03.2012 10:01:12

Re: Графика

Сообщение kosteek » 12.04.2012 09:54:29

Посмотри пример в lazarus/examples/scanline
kosteek
постоялец
 
Сообщения: 203
Зарегистрирован: 24.07.2008 14:57:09
Откуда: Украина, г.Славянск

Re: Графика

Сообщение gusluk » 13.04.2012 05:47:36

Сделал во так:
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var
MyBitmap: TBitmap;
  x,y: Integer;
  ScanLineImage: TLazIntfImage;
  IntfImage: TLazIntfImage;
  ImgFormatDescription: TRawImageDescription;
begin
  MyBitmap:=TBitmap.Create;
  ScanLineImage:=TLazIntfImage.Create(0,0);
  ImgFormatDescription.Init_BPP32_B8G8R8_BIO_TTB(1000,1000);
  ScanLineImage.DataDescription:=ImgFormatDescription;

  for y:=0 to 999 do
              begin
                for x:=0 to 999 do
                         begin
                         PByte(ScanLineImage.GetDataLineStart(y))[x*4+0]:=250; //B
                         PByte(ScanLineImage.GetDataLineStart(y))[x*4+1]:=250; //G
                         PByte(ScanLineImage.GetDataLineStart(y))[x*4+2]:=250; //R
                         end;
              end;
  // create IntfImage with the format of the current LCL interface
  MyBitmap.Width:=ScanLineImage.Width;
  MyBitmap.Height:=ScanLineImage.Height;
  IntfImage:=MyBitmap.CreateIntfImage;
  // convert the content from the very specific to the current format
  IntfImage.CopyPixels(ScanLineImage);
  MyBitmap.LoadFromIntfImage(IntfImage);
  form1.PaintBox1.Canvas.Draw(10,10,MyBitmap);
  ScanLineImage.Free;
  IntfImage.Free;
  MyBitmap.Free;
end;


Но работает довольно медленно.
Есть способы как то ускорить вывод картинки?
gusluk
незнакомец
 
Сообщения: 3
Зарегистрирован: 11.03.2012 10:01:12


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 245

Рейтинг@Mail.ru
cron