interpoldemo.pp 854 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. program interpoldemo;
  2. // Interpolation demo for fcl-image by Bernd Kreuss. Mantis #22245
  3. // Loads original.png (not included) and scales it back to 64x64
  4. {$mode objfpc}{$H+}
  5. uses
  6. Classes,
  7. sysutils,
  8. FPimage,
  9. FPImgCanv,
  10. FPReadPNG,
  11. FPWritePNG;
  12. var
  13. ImOriginal: TFPMemoryImage;
  14. ImScaled: TFPMemoryImage;
  15. CanvScaled: TFPImageCanvas;
  16. Reader: TFPReaderPNG;
  17. Writer: TFPWriterPNG;
  18. begin
  19. ImOriginal := TFPMemoryImage.Create(0, 0);
  20. ImScaled := TFPMemoryImage.Create(64, 64);
  21. Reader := TFPReaderPNG.create;
  22. Writer := TFPWriterPNG.create;
  23. Writer.UseAlpha := True;
  24. ImOriginal.LoadFromFile('original.png', Reader);
  25. CanvScaled := TFPImageCanvas.create(ImScaled);
  26. CanvScaled.StretchDraw(0,0,63,63, ImOriginal);
  27. ImScaled.SaveToFile('scaled.png', Writer);
  28. Reader.Free;
  29. Writer.Free;
  30. ImOriginal.Free;
  31. ImScaled.Free;
  32. end.