实现photoshop魔棒效果的源代码.

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

<<实现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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航