anchor.diff:        thumbnail.Canvas.Brush.Color:= clWhite;
         r := Rect(0, 0, thumbnail.Width, thumbnail.Height);
         thumbnail.Canvas.FillRect(r);
  +      {$IFDEF FPC}
         thumbnail.Canvas.AntialiasingMode := amON;
  +      {$ENDIF}
         thumbnail.Canvas.StretchDraw(r, sourcePicture.Graphic);
         thumbnail.SaveToFile(aThumbnailFile);
       finally
  
positive.code:     taRightJustify: TempFlags := DT_RIGHT;
      taCenter: TempFlags := DT_CENTER;
    end;
    TempFlags := TempFlags or (DT_VCENTER + DT_SINGLELINE {$ifndef fpc}DT_WORD_ELLIPSIS{$endif});
  
    tmpRect := aRect;
    if DrawText(aCanvas.Handle, PChar(aText), -1, tmpRect, TempFlags) = 0 then
  
negative.code: function GeneratePNGThumbnailOfImage(const aSourceFile, aThumbnailFile: String; const aMaxWidth, aMaxHeight: word;out aError: String): boolean;
  var
    sourcePicture : TPicture;
    thumbnail : {$IFDEF FPC} TPortableNetworkGraphic {$ELSE} TPngImage {$ENDIF};
    rateWidth, rateHeight : Extended;
    r : TRect;
  begin
    Result := true;
    try
      sourcePicture := TPicture.Create;
      {$IFDEF FPC}
      thumbnail := TPortableNetworkGraphic.Create;
      {$ELSE}
      thumbnail := TPngImage.Create;
      {$ENDIF}
      try
        sourcePicture.LoadFromFile(aSourceFile);
        rateWidth := aMaxWidth / sourcePicture.Width;
  