Šta je novo?

[Delphi 7]Canvas metod & JPEG

  • Začetnik teme Začetnik teme ToxiC
  • Datum pokretanja Datum pokretanja

ToxiC

Čuven
Učlanjen(a)
12.12.2002
Poruke
2,560
Poena
679
pokusavam nesto "crtati" po slici koja je ogromna (veliki dimenzija) i mora biti u JPEG!
ali mi canvas ne dozvoljava izbacuje gresku da radi samo sa BMP-om!
ako sliku prebacim u BMP onda mi comp. zablokira jer nemoze otvoriti sliku posto je (tako pretvorena u BMP) ogromna ~8MB!

da li ima neko resenje? :wall:
 
Sto ovo ne bi radilo?

Kod:
var jpg: tjpegimage;
begin
  jpg := tjpegimage.Create();
  try
    if fileexists('c:\testpic.jpg') then
      jpg.loadfromfile('c:\testpic.jpg');

    with image1.Canvas do
    begin
       StretchDraw(image1.ClientRect, jpg);
       // crtaj dalje       
       refresh();
  finally
    jpg.Free();
  end;
end;

p.s.
probao sad isto to i sa bmp-om (umesto jpega) velicine 15MB i radi savrseno.
 
Poslednja izmena:
BTW, pretpostavljam da znas da je bolje da ne ucitavas sliku u image u design tajmu, nego iz samog koda. To jest - kreiras privremeni jpeg objekat, ucitas jpg, konvertujes ga u privremeni bmp objekat (jpeg nema canvas, bmp ima), iscrtas po njemu sta ti treba i tek onda ga bacis na image, form ili koji vec objekat koristis za prikaz obradjene slike. Crtanje u memoriji je brze od crtanja po objektu koji je sve vreme vidljiv na formi, a na taj nacin eliminises i flickering.
 
silverglider je napisao(la):
BTW, pretpostavljam da znas da je bolje da ne ucitavas sliku u image u design tajmu, nego iz samog koda. To jest - kreiras privremeni jpeg objekat, ucitas jpg, konvertujes ga u privremeni bmp objekat (jpeg nema canvas, bmp ima), iscrtas po njemu sta ti treba i tek onda ga bacis na image, form ili koji vec objekat koristis za prikaz obradjene slike. Crtanje u memoriji je brze od crtanja po objektu koji je sve vreme vidljiv na formi, a na taj nacin eliminises i flickering.
ovo nisam znao :S:
vala svima :wave:
 
Nazad
Vrh Dno