Browse Source

* patch 10090 + imgconv now also writes pnm

git-svn-id: trunk@10404 -
marco 17 years ago
parent
commit
d89b92f639

+ 3 - 1
packages/fcl-image/examples/imgconv.pp

@@ -19,7 +19,7 @@ program ImgConv;
 
 uses FPWriteXPM, FPWritePNG, FPWriteBMP,
      FPReadXPM, FPReadPNG, FPReadBMP, fpreadjpeg,fpwritejpeg,
-     fpreadtga,fpwritetga,fpreadpnm,
+     fpreadtga,fpwritetga,fpreadpnm,fpwritepnm,
      {$ifndef UseFile}classes,{$endif}
      FPImage, sysutils;
 
@@ -77,6 +77,8 @@ begin
     Writer := TFPWriterPNG.Create
   else if T = 'T' then
     Writer := TFPWriterTARGA.Create
+  else if T = 'N' then
+    Writer := TFPWriterPNM.Create(4)
   else
     begin
     Writeln('Unknown file format : ',T);

+ 1 - 0
packages/fcl-image/src/fpimage.pp

@@ -79,6 +79,7 @@ type
       constructor Create (ACount : integer);
       destructor Destroy; override;
       procedure Build (Img : TFPCustomImage); virtual;
+      procedure Copy (APalette: TFPPalette); virtual;
       procedure Merge (pal : TFPPalette); virtual;
       function IndexOf (const AColor: TFPColor) : integer; virtual;
       function Add (const Value: TFPColor) : integer; virtual;

+ 12 - 0
packages/fcl-image/src/fppalette.inc

@@ -44,6 +44,18 @@ begin
     end;
 end;
 
+procedure TFPPalette.Copy(APalette: TFPPalette);
+var
+  x: integer;
+begin
+  if (APalette <> Self) then
+  begin
+    Self.Clear;
+    for x := 0 to APalette.Count - 1 do
+        Add(APalette.Color[x])
+  end;
+end;
+
 procedure TFPPalette.Merge (pal : TFPPalette);
 var r : integer;
 begin