anchor.diff:    FImage := LoadImage_BMP(FImageFilename);
     if FTransparent then
     begin
  -    FImage.CreateMaskFromSample(0, 0);
  +    FImage.CreateMaskFromSample(AMaskSample.X, AMaskSample.Y);
       FImage.UpdateImage;
     end;
     RecalcImageWidth;
     Repaint;
   end;
   
  -procedure TfpgBaseImgAnim.ImageFromByteArray(ABmp: Pointer; ASize: longword;
  -  AMaskSample: TPoint);
  +procedure TfpgBaseImgAnim.ImageFromByteArray(ABmp: Pointer; ASize: longword);
  +begin
  +  ImageFromByteArray(ABmp, ASize, Point(0,0));
  +end;
  +
  +procedure TfpgBaseImgAnim.ImageFromByteArray(ABmp: Pointer; ASize: longword; AMaskSample: TPoint);
   begin
     if ABmp=nil then
       Exit;
  
positive.code:   public
      constructor Create(AOwner: TComponent); override;
      destructor  Destroy; override;
  
      procedure   ImageFromByteArray(ABmp: Pointer; ASize: longword; AMaskSample: TPoint);
    end;
  
  
  
negative.code:   protected
      procedure   HandlePaint; override;
      procedure   SetEnabled(const AValue: boolean); override;
      procedure   SetImageFilename(const AValue: TfpgString); overload;
      //
      property    Interval: integer read FInterval write SetInterval default 50;
      property    ImageFileName: TfpgString read FImageFilename write SetImageFilename;
  