summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/fcl-image/examples/interpoldemo.pp
blob: 13fed448b92313e6986ed12239bd7456d1ab7766 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
program interpoldemo;
// Interpolation demo for fcl-image by Bernd Kreuss. Mantis #22245
// Loads original.png (not included) and scales it back to 64x64

{$mode objfpc}{$H+}

uses
  Classes,
  sysutils,
  FPimage,
  FPImgCanv,
  FPReadPNG,
  FPWritePNG;

var
  ImOriginal: TFPMemoryImage;
  ImScaled: TFPMemoryImage;
  CanvScaled: TFPImageCanvas;
  Reader: TFPReaderPNG;
  Writer: TFPWriterPNG;

begin
  ImOriginal := TFPMemoryImage.Create(0, 0);
  ImScaled := TFPMemoryImage.Create(64, 64);
  Reader := TFPReaderPNG.create;
  Writer := TFPWriterPNG.create;
  Writer.UseAlpha := True;
  ImOriginal.LoadFromFile('original.png', Reader);

  CanvScaled := TFPImageCanvas.create(ImScaled);
  CanvScaled.StretchDraw(0,0,63,63, ImOriginal);

  ImScaled.SaveToFile('scaled.png', Writer);
  Reader.Free;
  Writer.Free;
  ImOriginal.Free;
  ImScaled.Free;
end.