|
به راحتی و با استفاده از این تابع میتوان یک
فریم را از فایل با پسوند ani استخراج کرد!
Function
GetAniFrame(Filename:String;FIndex:Integer=0):
HIcon; var MskBmp, ClrBmp:TBitmap;
IconInf:_Iconinfo;
IcoH:HIcon; begin MskBmp:=TBitmap.Create; ClrBmp:=TBitmap.Create; try MskBmp.PixelFormat:=pf1bit; IcoH:=extracticon(hinstance,Pchar(Filename),0); GetIconInfo(IcoH,IconInf); ClrBmp.Handle:=IconInf.hbmColor; MskBmp.Handle:=IconInf.hbmMask; If
not DrawIconEx(clrbmp.Canvas.Handle,0,0,IcoH,0,0,fIndex,0,DI_Image)
then begin Result:=0; exit; end; If not
DrawIconEx(Mskbmp.Canvas.Handle,0,0,IcoH,0,0,fIndex,0,DI_Mask)
then begin Result:=0;
exit; end; closeHandle(IconInf.hbmColor); closeHandle(IconInf.hbmMask); IconInf.hbmColor:=clrbmp.Handle; IconInf.hbmMask:=Mskbmp.Handle; Result:=CreateIconInDirect(IconInf); finally
ClrBmp.free;
MskBmp.free; end; end;
| |
|