Browse Source

* ability to set png writer's zlib Compressionlevel, fixes Mantis #19224

git-svn-id: trunk@17716 -
marco 14 years ago
parent
commit
2f7525f26a
1 changed files with 4 additions and 1 deletions
  1. 4 1
      packages/fcl-image/src/fpwritepng.pp

+ 4 - 1
packages/fcl-image/src/fpwritepng.pp

@@ -41,6 +41,7 @@ type
       FDatalineLength : longword;
       ZData : TMemoryStream;  // holds uncompressed data until all blocks are written
       Compressor : TCompressionStream; // compresses the data
+      FCompressionLevel : TCompressionLevel;
       procedure WriteChunk;
       function GetColorPixel (x,y:longword) : TColorData;
       function GetPalettePixel (x,y:longword) : TColorData;
@@ -94,6 +95,7 @@ type
       property CompressedText : boolean read FCompressedText write FCompressedText;
       property WordSized : boolean read FWordSized write FWordSized;
       property UseAlpha : boolean read FUseAlpha write FUseAlpha;
+      property CompressionLevel : TCompressionLevel read FCompressionLevel write FCompressionLevel;
   end;
 
 implementation
@@ -108,6 +110,7 @@ begin
   FCompressedText := True;
   FWordSized := True;
   FUseAlpha := False;
+  FCompressionLevel:=clDefault;
 end;
 
 destructor TFPWriterPNG.destroy;
@@ -565,7 +568,7 @@ begin
   GetMem (FCurrentLine, FDatalineLength);
   fillchar (FCurrentLine^,FDatalineLength,0);
   ZData := TMemoryStream.Create;
-  Compressor := TCompressionStream.Create (clMax,ZData);
+  Compressor := TCompressionStream.Create (FCompressionLevel,ZData);
   FGetPixel := DecideGetPixel;
 end;