Witam.
Jestem w trakcie pisania programu, ktory porownuje roznymi metodami jakosc skompresowanego jpg w porownaniu do oryginalnej bmp. Oblicza np. znormalizowana korelacje skrosna, laplasjanowy blad sredniokwadratowy itp. przyjemne rzeczy :)
Pojawil sie problem przy zczytywaniu piksela z jpgow (do obliczania tych funkcji sa mi potrzebne wartosci piksela w zadanym punkcie). Niestety zwykly canvas.pixels dziala tylko przy bmp, a przy jpg wyskakiwal mi blad, ze delphi nie wie co to jest canvas :)
probowalem sztuczki, zeby obiekt jpg dziedziczyl z tbitmap, ale wtedy blednie wczytuje sie jpg. Czy ktos moglby mi poradzic jak rozwiazac ten problem?
procedure TMainForm.editcount1Click(Sender: TObject);
begin
for i:=1 to mj do
begin
for j:=1 to nj do
begin
pix1:=bitmapka.Canvas.Pixels[i,j];
pix2:=jpgmapka.Canvas.pixels[i,j];
suma1:=suma1+((pix1-pix2)/mj*nj);
end;
end;
wynik:=suma1;
labelededit1.text:=floattostr(wynik);
suma1:=0;
end;
To jest przyklad jednej z procedur. Jpgmapka dziedziczy tu po bmp, a gdy dziedziczenie ustawie na TJPGImage to nie widzi canvasa :(
Z gory dziekuje.