[Delphi]Canvas, Paintbox

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Alex_18 21. 4. 2006 19:59

Zdravím,
mám takový problém: Mám dvojrozměrné pole. Rozměry 400,400. Každý prvek pole má hodnotu integer označující barvu Tcolor. Mám PaintBox o rozměrech 400,400 tedy jako pole a chci vyplnit paintbox tedy pixely v paintboxu barvami z pole. Jak to udělat abych to nemusel dělat přes dva fory, nebo jiné cykly? Zajímá mě jestli není nějaká funkce která by toto uměla. Protože vyplnění painboxu přes dva fory pixel po pixelu je velice zdlouhavá operace.

Děkuji všem za pomoc.
Alex_18
Junior

Odeslat příspěvekod Koren 23. 4. 2006 13:59

to, co popisujes je vlastne bitmapa, paintbox ma funkci neco jako loadbitmap nebo tak nejak, mozna, ze by slo pole pretypovat pomoci absolute a pak pres handle vlozit jako bitmapu... Ale jenom nako napad, jednodussi sou ty fory, taky nevim, jak to bude s tou rychlosti
To dřív pojede čert na bruslích do práce...
RD rulez
Koren
Junior
Uživatelský avatar

Odeslat příspěvekod shmoula81 23. 4. 2006 14:54

K tomuhle slouzi funkce ScanLine, to by ti melo co do rychlosti snad stacit. Strilecku se 100 FPS z toho nevytriskas, ale na jednorazovy zobrazeni obrazku to bohate staci. V Delphi helpu je priklad a kdyz do Googlu zadas delphi scanline, najdes dost prikladu i v cestine.
shmoula81
Junior

Odeslat příspěvekod Alex_18 23. 4. 2006 22:45

díky všem za pomoc.
Alex_18
Junior

Odeslat příspěvekod 8ball (novy) 23. 4. 2006 23:55

Alex_18 píše:...


na 2D grafiku v Delphi odporúčam kolekciu free komponent Graphics32 - http://graphics32.org/ ktoré sú omnoho rýchlejšie ako TImage a TPaintbox pratože nevykreslujú objekty cez canvas ale zapisujú priamo do pamäte. Podporujú všetky moderné technológie ako Alpha Blending, Anti Aliasing a iné.
8ball (novy)
Junior


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků