aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/Classes/Ulazjpeg.pas
diff options
context:
space:
mode:
authorjaybinks <jaybinks@b956fd51-792f-4845-bead-9b4dfca2ff2c>2007-09-20 10:35:02 +0000
committerjaybinks <jaybinks@b956fd51-792f-4845-bead-9b4dfca2ff2c>2007-09-20 10:35:02 +0000
commita1c2876fb12cfc860044f00210f69a9bdc2cf687 (patch)
tree17e99ea9a199279fd28d57b0be189765a6c9ad55 /Game/Code/Classes/Ulazjpeg.pas
parent3c41f973b397b718135a7713c7501607812b0192 (diff)
downloadusdx-a1c2876fb12cfc860044f00210f69a9bdc2cf687.tar.gz
usdx-a1c2876fb12cfc860044f00210f69a9bdc2cf687.tar.xz
usdx-a1c2876fb12cfc860044f00210f69a9bdc2cf687.zip
minor fixes for lazarus build..
forgot file... oops.. :) git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@416 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r--Game/Code/Classes/Ulazjpeg.pas118
1 files changed, 118 insertions, 0 deletions
diff --git a/Game/Code/Classes/Ulazjpeg.pas b/Game/Code/Classes/Ulazjpeg.pas
new file mode 100644
index 00000000..1f6d8b99
--- /dev/null
+++ b/Game/Code/Classes/Ulazjpeg.pas
@@ -0,0 +1,118 @@
+{ Copyright (C) 2003 Mattias Gaertner
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
+ for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+}
+unit Ulazjpeg;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ SysUtils, Classes, FPImage, IntfGraphics, Graphics, FPReadJPEG, FPWriteJPEG;
+
+type
+ TJPEGQualityRange = TFPJPEGCompressionQuality;
+ TJPEGPerformance = TJPEGReadPerformance;
+
+ TJPEGImage = class(TFPImageBitmap)
+ private
+ FPerformance: TJPEGPerformance;
+ FProgressiveEncoding: boolean;
+ FQuality: TJPEGQualityRange;
+ protected
+ procedure InitFPImageReader(ImgReader: TFPCustomImageReader); override;
+ procedure FinalizeFPImageReader(ImgReader: TFPCustomImageReader); override;
+ procedure InitFPImageWriter(ImgWriter: TFPCustomImageWriter); override;
+ public
+ constructor Create; override;
+ class function GetFileExtensions: string; override;
+ class function GetDefaultFPReader: TFPCustomImageReaderClass; override;
+ class function GetDefaultFPWriter: TFPCustomImageWriterClass; override;
+ public
+ property CompressionQuality: TJPEGQualityRange read FQuality write FQuality;
+ property ProgressiveEncoding: boolean read FProgressiveEncoding;
+ property Performance: TJPEGPerformance read FPerformance write FPerformance;
+ end;
+
+const
+ DefaultJPEGMimeType = 'image/jpeg';
+
+
+implementation
+
+
+{ TJPEGImage }
+
+procedure TJPEGImage.InitFPImageReader(ImgReader: TFPCustomImageReader);
+var
+ JPEGReader: TFPReaderJPEG;
+begin
+ if ImgReader is TFPReaderJPEG then begin
+ JPEGReader:=TFPReaderJPEG(ImgReader);
+ JPEGReader.Performance:=Performance;
+ end;
+ inherited InitFPImageReader(ImgReader);
+end;
+
+procedure TJPEGImage.FinalizeFPImageReader(ImgReader: TFPCustomImageReader);
+var
+ JPEGReader: TFPReaderJPEG;
+begin
+ if ImgReader is TFPReaderJPEG then begin
+ JPEGReader:=TFPReaderJPEG(ImgReader);
+ FProgressiveEncoding:=JPEGReader.ProgressiveEncoding;
+ end;
+ inherited FinalizeFPImageReader(ImgReader);
+end;
+
+procedure TJPEGImage.InitFPImageWriter(ImgWriter: TFPCustomImageWriter);
+var
+ JPEGWriter: TFPWriterJPEG;
+begin
+ if ImgWriter is TFPWriterJPEG then begin
+ JPEGWriter:=TFPWriterJPEG(ImgWriter);
+ if JPEGWriter<>nil then ;
+ JPEGWriter.ProgressiveEncoding:=ProgressiveEncoding;
+ JPEGWriter.CompressionQuality:=CompressionQuality;
+ end;
+ inherited InitFPImageWriter(ImgWriter);
+end;
+
+class function TJPEGImage.GetDefaultFPReader: TFPCustomImageReaderClass;
+begin
+ Result:=TFPReaderJPEG;
+end;
+
+class function TJPEGImage.GetDefaultFPWriter: TFPCustomImageWriterClass;
+begin
+ Result:=TFPWriterJPEG;
+end;
+
+constructor TJPEGImage.Create;
+begin
+ inherited Create;
+ FPerformance:=jpBestQuality;
+ FProgressiveEncoding:=false;
+ FQuality:=75;
+end;
+
+class function TJPEGImage.GetFileExtensions: string;
+begin
+ Result:='jpg;jpeg';
+end;
+
+end.
+