<<实现photoshop魔棒(magic wand tool)效果的源代码>>
是一个老外写的,希望能有人转成VC++的工程,谢谢!
片断:
procedure exec; var hh,ll,ss,h1,l1,s1,aa,bb,cc:real; c1,c2,c3,pixr,pixg,pixb,oldr,oldg,oldb,newr,newg,newb:byte; pix:tcolorref; jj:byte; xr,yr:longint; gray:real; pp:prgbtriplerow; begin oldr:=getrvalue(oldcolor); oldg:=getgvalue(oldcolor); oldb:=getbvalue(oldcolor);
for jj:=1 to 4 do begin if jj=1 then begin xr:=xf+1; yr:=yf; end; if jj=2 then begin xr:=xf-1; yr:=yf; end; if jj=3 then begin xr:=xf; yr:=yf+1; end; if jj=4 then begin xr:=xf; yr:=yf-1; end; if ((xr< bitmap1.width)and(jj=1))or((xr>=0)and(jj=2)) or ((yr< bitmap1.height)and(jj=3))or((yr>=0)and(jj=4)) then begin pp:=bitmap1.scanline[yr]; pix:=rgb(pp[xr].rgbtred,pp[xr].rgbtgreen,pp[xr].rgbtblue); pixr:=getrvalue(pix); pixg:=getgvalue(pix); pixb:=getbvalue(pix); if (not mask[xr,yr])and(abs(pixr-oldr)<=tolerance*150)and(abs(pixg-oldg)<=tolerance*150)and(abs(pixb-oldb)<=tolerance*150)then begin mask[xr,yr]:=true; nf := nf+1; fillx[nf]:= xr; filly[nf]:= yr; end; end; end; end;
代码::
http://www.lander.com/gensavas/francosava/delphi/delphi20procedures/magwand.zip

|