1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| PROCEDURE AntiAlias(clip:tbitmap);
VAR x,y:Integer;p0,p1,p2:pbytearray;
BEGIN
clip.PixelFormat:=pf24bit;
FOR y:=max(1,0)TO min(clip.height-2,clip.height)DO BEGIN
p0:=clip.ScanLine[y-1];
p1:=clip.scanline[y];
p2:=clip.ScanLine[y+1];
FOR x:=max(1,0)TO min(clip.width-2,clip.width)DO BEGIN
p1[x*3]:=(p0[x*3]+p2[x*3]+p1[(x-1)*3]+p1[(x+1)*3])DIV 4;
p1[x*3+1]:=(p0[x*3+1]+p2[x*3+1]+p1[(x-1)*3+1]+p1[(x+1)*3+1])DIV 4;
p1[x*3+2]:=(p0[x*3+2]+p2[x*3+2]+p1[(x-1)*3+2]+p1[(x+1)*3+2])DIV 4;
END;
END;
END; |