Skocz do zawartości

[delphi] Problemy ze scnaline


sybic

Polecane posty

Mam program z którego korzysta ponad 100 użytkowników na WinXP, Vista i Win7.

Jest tam sporo procedur wykorzystujących funkcje ScanLine.

 

Wszystko OK, ale trafił mi się user, któremu wszędzie tam gdzie owa funkcja występuje

wywala błąd „Scan line index of range”.

 

Oczywiście nic nie jest poza zakresem, bo wszystko chodzi jak trzeba, a tu taki problem.

 

Pytanie :

Czy we wspomnianej funkcji jest jakiś haczyk?

Uzależniony od systemu, czy sprzętu?

 

Klient jest akurat z Japonii, ale tak chyba systemy są takie same ;)

Problem występuje wszędzie tam gdzie jest scnaline

Poniżej przykładowe procedury, na których program się wywala.

 

 

Procedure Blur( var Bitmap :TBitmap);
var
TL,TC,TR,BL,BC,BR,LL,LC,LR:^TRGBTriple;
H,V:Integer;
begin
Bitmap.PixelFormat :=pf24bit;
for V := 1 to Bitmap.Height - 2 do
begin
TL:= Bitmap.ScanLine[V - 1];
TC:=TL;  
TR:=TL;
BL:= Bitmap.ScanLine[V];
BC:=BL;
BR:=BL;
LL:= Bitmap.ScanLine[V + 1];
LC:=LL;
LR:=LL;
inc(TC); inc(TR,2);
inc(BC); inc(BR,2);
inc(LC); inc(LR,2);
for H := 1 to (Bitmap.Width  - 2) do
begin

 BC.rgbtRed:= (BC.rgbtRed+ BL.rgbtRed+BR.rgbtRed+
 TC.rgbtRed+ TL.rgbtRed+TR.rgbtRed+
 LL.rgbtRed+ LC.rgbtRed+LR.rgbtRed) div 9 ;
 BC.rgbtGreen:=( BC.rgbtGreen+ BL.rgbtGreen+BR.rgbtGreen+
 TC.rgbtGreen+ TL.rgbtGreen+TR.rgbtGreen+
 LL.rgbtGreen+ LC.rgbtGreen+LR.rgbtGreen) div 9 ;
 BC.rgbtBlue:=( BC.rgbtBlue+ BL.rgbtBlue+BR.rgbtBlue+
 TC.rgbtBlue+ TL.rgbtBlue+TR.rgbtBlue+
 LL.rgbtBlue+ LC.rgbtBlue+LR.rgbtBlue )div 9 ;

 inc(TL);inc(TC);inc(TR);
 inc(BL);inc(BC);inc(BR);
 inc(LL);inc(LC);inc(LR);
end;
 end;
end;

Link do komentarza
Udostępnij na innych stronach

blad dziwny, ustaw sobie aserty sprawdzajace czy wskaznik BC nie wyjezdza ci za daleko i czy nie nadpisujesz przez to pamieci. Pozatym nazwy zmienny mienią się w oczach, ręcznie je iterujesz na dziwnych zakresach pętli więc na tym też bym assercje poustawiał aby się upewnić że nie wychodzą tam gdzie nie trzeba.

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...