+ added support for XPM, BMP, TGA

* Fix units names
* Fix example program

git-svn-id: trunk@5859 -
This commit is contained in:
mazen 2004-08-26 11:19:13 +00:00
parent 42be336413
commit b5be98d22b
13 changed files with 442 additions and 79 deletions

3
.gitattributes vendored
View File

@ -87,9 +87,12 @@ components/images/examples/mainform.lrs svneol=native#text/pascal
components/images/examples/mainform.pas svneol=native#text/pascal
components/images/imagesforlazarus.lpk svneol=native#text/pascal
components/images/imagesforlazarus.pas svneol=native#text/pascal
components/images/lazbmp.pas svneol=native#text/pascal
components/images/lazjpg.pas svneol=native#text/pascal
components/images/lazpng.pas svneol=native#text/pascal
components/images/lazpnm.pas svneol=native#text/pascal
components/images/laztga.pas svneol=native#text/pascal
components/images/lazxpm.pas svneol=native#text/pascal
components/images/readme.txt svneol=native#text/plain
components/interbase/interbaselaz.lpk svneol=native#text/pascal
components/interbase/interbaselaz.pas svneol=native#text/pascal

View File

@ -5,21 +5,45 @@
<General>
<ProjectType Value="Application"/>
<MainUnit Value="0"/>
<ActiveEditorIndexAtStart Value="1"/>
<ActiveEditorIndexAtStart Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=""/>
<Title Value="jpegexample"/>
<Title Value="Images Example"/>
</General>
<JumpHistory Count="1" HistoryIndex="0">
<JumpHistory Count="7" HistoryIndex="6">
<Position1>
<Filename Value="mainform.pas"/>
<Caret Line="38" Column="21" TopLine="38"/>
<Caret Line="35" Column="29" TopLine="24"/>
</Position1>
<Position2>
<Filename Value="mainform.pas"/>
<Caret Line="61" Column="45" TopLine="51"/>
</Position2>
<Position3>
<Filename Value="mainform.pas"/>
<Caret Line="67" Column="14" TopLine="56"/>
</Position3>
<Position4>
<Filename Value="mainform.pas"/>
<Caret Line="61" Column="1" TopLine="35"/>
</Position4>
<Position5>
<Filename Value="mainform.pas"/>
<Caret Line="62" Column="10" TopLine="54"/>
</Position5>
<Position6>
<Filename Value="mainform.pas"/>
<Caret Line="146" Column="12" TopLine="120"/>
</Position6>
<Position7>
<Filename Value="mainform.pas"/>
<Caret Line="131" Column="14" TopLine="118"/>
</Position7>
</JumpHistory>
<Units Count="24">
<Unit0>
<CursorPos X="65" Y="11"/>
<EditorIndex Value="3"/>
<CursorPos X="39" Y="10"/>
<EditorIndex Value="2"/>
<Filename Value="imagesexample.lpr"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
@ -28,14 +52,14 @@
<UsageCount Value="33"/>
</Unit0>
<Unit1>
<CursorPos X="21" Y="38"/>
<CursorPos X="81" Y="6"/>
<EditorIndex Value="0"/>
<Filename Value="mainform.pas"/>
<ComponentName Value="ImagesExampleForm"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
<ResourceFilename Value="mainform.lrs"/>
<TopLine Value="38"/>
<TopLine Value="1"/>
<UnitName Value="MainForm"/>
<UsageCount Value="33"/>
</Unit1>
@ -175,7 +199,7 @@
</Unit21>
<Unit22>
<CursorPos X="2" Y="4"/>
<EditorIndex Value="2"/>
<EditorIndex Value="1"/>
<Filename Value="README.txt"/>
<IsPartOfProject Value="True"/>
<Loaded Value="True"/>
@ -185,10 +209,8 @@
</Unit22>
<Unit23>
<CursorPos X="1" Y="468"/>
<EditorIndex Value="1"/>
<Filename Value="/home/neifer/FPC/Demo/src/lazarus/lcl/include/picture.inc"/>
<Loaded Value="True"/>
<TopLine Value="454"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit23>
</Units>
@ -206,11 +228,11 @@
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="LCL"/>
<MinVersion Major="1" Valid="True"/>
<PackageName Value="ImagesForLazarus"/>
</Item1>
<Item2>
<PackageName Value="JPEGForLazarus"/>
<PackageName Value="LCL"/>
<MinVersion Major="1" Valid="True"/>
</Item2>
</RequiredPackages>
</ProjectOptions>

View File

@ -7,6 +7,7 @@ uses
Forms, MainForm;
begin
Application.Title:='Images Example';
Application.Initialize;
Application.CreateForm(TImagesExampleForm, ImagesExampleForm);
Application.Run;

View File

@ -1,9 +1,9 @@
{ Copyright (C) 2004 Mattias Gaertner
Example for loading and saving jpeg images.
Example for loading and saving images.
Important:
This example uses the JPEGForLazarusPackage (see in the directory above).
This example uses the ImagesForLazarus Package (see in the directory above).
You must first open once this package so that the IDE knows, where to find
the lpk file.
@ -32,7 +32,7 @@ interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, Buttons, ExtDlgs, LazJPEG;
ExtCtrls, Buttons, ExtDlgs;
type
TImagesExampleForm = class(TForm)
@ -57,11 +57,17 @@ var
implementation
uses
{Load for all package units : LazPNG, LazPNM, LazJPG, LazBMP, LazTGA, LazXPM}
ImagesForLazarus,
{Need LazJPG to use TJPGImage class}
LazJPG;
{ TImagesExampleForm }
procedure TImagesExampleForm.LoadJPEGButtonClick(Sender: TObject);
var
JPEG: TJPEGImage;
JPEG: TJPGImage;
begin
OpenPictureDialog1.Options:=OpenPictureDialog1.Options+[ofFileMustExist];
if not OpenPictureDialog1.Execute then exit;
@ -69,7 +75,7 @@ begin
//--------------------------------------------------------------------------
// Create a TJPEGImage and load the file, then copy it to the TImage.
// A TJPEGImage can only load jpeg images.
JPEG:=TJPEGImage.Create;
JPEG:=TJPGImage.Create;
try
JPEG.LoadFromFile(OpenPictureDialog1.Filename);
// copy jpeg content to a TImage
@ -88,7 +94,7 @@ end;
procedure TImagesExampleForm.LoadImageButtonClick(Sender: TObject);
var
JPEG: TJPEGImage;
JPEG: TJPGImage;
begin
OpenPictureDialog1.Options:=OpenPictureDialog1.Options+[ofFileMustExist];
if not OpenPictureDialog1.Execute then exit;
@ -110,7 +116,7 @@ end;
procedure TImagesExampleForm.SaveJPEGButtonClick(Sender: TObject);
var
JPEG: TJPEGImage;
JPEG: TJPGImage;
begin
if Image1.Picture.Graphic=nil then begin
MessageDlg('No image','Please open an image, before save',mtError,
@ -124,7 +130,7 @@ begin
//--------------------------------------------------------------------------
// Create a TImage1 and copy the TImage into it. Then save to file.
// This will ignore the file extension. TImage1 will always save as jpeg.
JPEG:=TJPEGImage.Create;
JPEG:=TJPGImage.Create;
try
// copy content of the TImage to jpeg
JPEG.Assign(Image1.Picture.Graphic);
@ -145,7 +151,7 @@ end;
procedure TImagesExampleForm.SaveImageButtonClick(Sender: TObject);
var
JPEG: TJPEGImage;
JPEG: TJPGImage;
begin
if Image1.Picture.Graphic=nil then begin
MessageDlg('No image','Please open an image, before save',mtError,

View File

@ -20,10 +20,10 @@
"/>
<License Value="LGPL"/>
<Version Major="1" Release="1"/>
<Files Count="4">
<Files Count="7">
<Item1>
<Filename Value="lazpng.pas"/>
<UnitName Value="lazpng"/>
<UnitName Value="Lazpng"/>
</Item1>
<Item2>
<Filename Value="readme.txt"/>
@ -37,6 +37,18 @@
<Filename Value="lazjpg.pas"/>
<UnitName Value="Lazjpg"/>
</Item4>
<Item5>
<Filename Value="lazbmp.pas"/>
<UnitName Value="LazBMP"/>
</Item5>
<Item6>
<Filename Value="laztga.pas"/>
<UnitName Value="LazTGA"/>
</Item6>
<Item7>
<Filename Value="lazxpm.pas"/>
<UnitName Value="LazXPM"/>
</Item7>
</Files>
<Type Value="RunAndDesignTime"/>
<RequiredPkgs Count="1">

View File

@ -8,7 +8,7 @@ unit ImagesForLazarus;
interface
uses
Lazpng, Lazpnm, Lazjpg, LazarusPackageIntf;
Lazpng, Lazpnm, Lazjpg, LazBMP, LazTGA, LazXPM, LazarusPackageIntf;
implementation

View File

@ -0,0 +1,107 @@
{ 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 LazBMP;
{$mode objfpc}{$H+}
interface
uses
SysUtils, Classes, FPImage, IntfGraphics, Graphics,
FPReadBMP, FPWriteBMP,
ClipBrd;
type
TBMPImage = class(TFPImageBitmap)
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;
end;
const
DefaultBMPMimeType = 'image/bmp';
implementation
{ TBMPImage }
procedure TBMPImage.InitFPImageReader(ImgReader: TFPCustomImageReader);
var
BMPReader: TFPReaderBMP;
begin
if ImgReader is TFPReaderBMP then begin
end;
inherited InitFPImageReader(ImgReader);
end;
procedure TBMPImage.FinalizeFPImageReader(ImgReader: TFPCustomImageReader);
var
BMPReader: TFPReaderBMP;
begin
if ImgReader is TFPReaderBMP then begin
end;
inherited FinalizeFPImageReader(ImgReader);
end;
procedure TBMPImage.InitFPImageWriter(ImgWriter: TFPCustomImageWriter);
var
BMPWriter: TFPWriterBMP;
begin
if ImgWriter is TFPWriterBMP then begin
BMPWriter:=TFPWriterBMP(ImgWriter);
if BMPWriter<>nil then ;
end;
inherited InitFPImageWriter(ImgWriter);
end;
function TBMPImage.GetDefaultFPReader: TFPCustomImageReaderClass;
begin
Result:=TFPReaderBMP;
end;
function TBMPImage.GetDefaultFPWriter: TFPCustomImageWriterClass;
begin
Result:=TFPWriterBMP;
end;
constructor TBMPImage.Create;
begin
inherited Create;
end;
function TBMPImage.GetFileExtensions: string;
begin
Result:='bmp';
end;
initialization
TPicture.RegisterFileFormat('bmp', 'BMP Image File', TBMPImage);
TPicture.RegisterClipboardFormat(RegisterClipboardFormat(DefaultBMPMimeType),
TBMPImage);
finalization
TPicture.UnregisterGraphicClass(TBMPImage);
end.

View File

@ -14,7 +14,7 @@
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
unit Lazjpg;
unit LazJPG;
{$mode objfpc}{$H+}
@ -26,14 +26,14 @@ uses
ClipBrd;
type
TJPEGQualityRange = TFPJPEGCompressionQuality;
TJPEGPerformance = TJPEGReadPerformance;
TJPGQualityRange = TFPJPEGCompressionQuality;
TJPGPerformance = TJPEGReadPerformance;
TJPEGImage = class(TFPImageBitmap)
TJPGImage = class(TFPImageBitmap)
private
FPerformance: TJPEGPerformance;
FPerformance: TJPGPerformance;
FProgressiveEncoding: boolean;
FQuality: TJPEGQualityRange;
FQuality: TJPGQualityRange;
protected
procedure InitFPImageReader(ImgReader: TFPCustomImageReader); override;
procedure FinalizeFPImageReader(ImgReader: TFPCustomImageReader); override;
@ -44,64 +44,64 @@ type
class function GetDefaultFPReader: TFPCustomImageReaderClass; override;
class function GetDefaultFPWriter: TFPCustomImageWriterClass; override;
public
property CompressionQuality: TJPEGQualityRange read FQuality write FQuality;
property CompressionQuality: TJPGQualityRange read FQuality write FQuality;
property ProgressiveEncoding: boolean read FProgressiveEncoding;
property Performance: TJPEGPerformance read FPerformance write FPerformance;
property Performance: TJPGPerformance read FPerformance write FPerformance;
end;
const
DefaultJPEGMimeType = 'image/jpeg';
DefaultJPGMimeType = 'image/jpeg';
implementation
{ TJPEGImage }
{ TJPGImage }
procedure TJPEGImage.InitFPImageReader(ImgReader: TFPCustomImageReader);
procedure TJPGImage.InitFPImageReader(ImgReader: TFPCustomImageReader);
var
JPEGReader: TFPReaderJPEG;
JPGReader: TFPReaderJPEG;
begin
if ImgReader is TFPReaderJPEG then begin
JPEGReader:=TFPReaderJPEG(ImgReader);
JPEGReader.Performance:=Performance;
JPGReader:=TFPReaderJPEG(ImgReader);
JPGReader.Performance:=Performance;
end;
inherited InitFPImageReader(ImgReader);
end;
procedure TJPEGImage.FinalizeFPImageReader(ImgReader: TFPCustomImageReader);
procedure TJPGImage.FinalizeFPImageReader(ImgReader: TFPCustomImageReader);
var
JPEGReader: TFPReaderJPEG;
JPGReader: TFPReaderJPEG;
begin
if ImgReader is TFPReaderJPEG then begin
JPEGReader:=TFPReaderJPEG(ImgReader);
FProgressiveEncoding:=JPEGReader.ProgressiveEncoding;
JPGReader:=TFPReaderJPEG(ImgReader);
FProgressiveEncoding:=JPGReader.ProgressiveEncoding;
end;
inherited FinalizeFPImageReader(ImgReader);
end;
procedure TJPEGImage.InitFPImageWriter(ImgWriter: TFPCustomImageWriter);
procedure TJPGImage.InitFPImageWriter(ImgWriter: TFPCustomImageWriter);
var
JPEGWriter: TFPWriterJPEG;
JPGWriter: TFPWriterJPEG;
begin
if ImgWriter is TFPWriterJPEG then begin
JPEGWriter:=TFPWriterJPEG(ImgWriter);
if JPEGWriter<>nil then ;
JPEGWriter.ProgressiveEncoding:=ProgressiveEncoding;
JPEGWriter.CompressionQuality:=CompressionQuality;
JPGWriter:=TFPWriterJPEG(ImgWriter);
if JPGWriter<>nil then ;
JPGWriter.ProgressiveEncoding:=ProgressiveEncoding;
JPGWriter.CompressionQuality:=CompressionQuality;
end;
inherited InitFPImageWriter(ImgWriter);
end;
function TJPEGImage.GetDefaultFPReader: TFPCustomImageReaderClass;
function TJPGImage.GetDefaultFPReader: TFPCustomImageReaderClass;
begin
Result:=TFPReaderJPEG;
end;
function TJPEGImage.GetDefaultFPWriter: TFPCustomImageWriterClass;
function TJPGImage.GetDefaultFPWriter: TFPCustomImageWriterClass;
begin
Result:=TFPWriterJPEG;
end;
constructor TJPEGImage.Create;
constructor TJPGImage.Create;
begin
inherited Create;
FPerformance:=jpBestQuality;
@ -109,20 +109,19 @@ begin
FQuality:=75;
end;
function TJPEGImage.GetFileExtensions: string;
function TJPGImage.GetFileExtensions: string;
begin
Result:='jpg;jpeg';
WriteLn('Sending result=',result);
end;
initialization
TPicture.RegisterFileFormat('jpg', 'JPEG Image File', TJPEGImage);
TPicture.RegisterFileFormat('jpeg', 'JPEG Image File', TJPEGImage);
TPicture.RegisterClipboardFormat(RegisterClipboardFormat(DefaultJPEGMimeType),
TJPEGImage);
TPicture.RegisterFileFormat('jpg', 'JPEG Image File', TJPGImage);
TPicture.RegisterFileFormat('jpeg', 'JPEG Image File', TJPGImage);
TPicture.RegisterClipboardFormat(RegisterClipboardFormat(DefaultJPGMimeType),
TJPGImage);
finalization
TPicture.UnregisterGraphicClass(TJPEGImage);
TPicture.UnregisterGraphicClass(TJPGImage);
end.

View File

@ -14,7 +14,7 @@
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
unit Lazpng;
unit LazPNG;
{$mode objfpc}{$H+}

View File

@ -14,7 +14,7 @@
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
unit Lazpnm;
unit LazPNM;
{$mode objfpc}{$H+}
@ -62,7 +62,6 @@ end;
function TPNMImage.GetFileExtensions: string;
begin
Result:='ppm;pgm;pbm';
WriteLn('Sending result=',result);
end;
initialization

View File

@ -0,0 +1,107 @@
{ 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 LazTGA;
{$mode objfpc}{$H+}
interface
uses
SysUtils, Classes, FPImage, IntfGraphics, Graphics,
FPReadTGA, FPWriteTGA,
ClipBrd;
type
TTGAImage = class(TFPImageBitmap)
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;
end;
const
DefaultTGAMimeType = 'image/tga';
implementation
{ TTGAImage }
procedure TTGAImage.InitFPImageReader(ImgReader: TFPCustomImageReader);
var
TGAReader: TFPReaderTarga;
begin
if ImgReader is TFPReaderTarga then begin
end;
inherited InitFPImageReader(ImgReader);
end;
procedure TTGAImage.FinalizeFPImageReader(ImgReader: TFPCustomImageReader);
var
TGAReader: TFPReaderTarga;
begin
if ImgReader is TFPReaderTarga then begin
TGAReader:=TFPReaderTarga(ImgReader);
end;
inherited FinalizeFPImageReader(ImgReader);
end;
procedure TTGAImage.InitFPImageWriter(ImgWriter: TFPCustomImageWriter);
var
TGAWriter: TFPWriterTarga;
begin
if ImgWriter is TFPWriterTarga then begin
TGAWriter:=TFPWriterTarga(ImgWriter);
if TGAWriter<>nil then ;
end;
inherited InitFPImageWriter(ImgWriter);
end;
function TTGAImage.GetDefaultFPReader: TFPCustomImageReaderClass;
begin
Result:=TFPReaderTarga;
end;
function TTGAImage.GetDefaultFPWriter: TFPCustomImageWriterClass;
begin
Result:=TFPWriterTarga;
end;
constructor TTGAImage.Create;
begin
inherited Create;
end;
function TTGAImage.GetFileExtensions: string;
begin
Result:='tga';
end;
initialization
TPicture.RegisterFileFormat('tga', 'TGA Image File', TTGAImage);
TPicture.RegisterClipboardFormat(RegisterClipboardFormat(DefaultTGAMimeType),
TTGAImage);
finalization
TPicture.UnregisterGraphicClass(TTGAImage);
end.

View File

@ -0,0 +1,107 @@
{ 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 LazXPM;
{$mode objfpc}{$H+}
interface
uses
SysUtils, Classes, FPImage, IntfGraphics, Graphics,
FPReadXPM, FPWriteXPM,
ClipBrd;
type
TXPMImage = class(TFPImageBitmap)
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;
end;
const
DefaultXPMMimeType = 'image/xpm';
implementation
{ TXPMImage }
procedure TXPMImage.InitFPImageReader(ImgReader: TFPCustomImageReader);
var
XPMReader: TFPReaderXPM;
begin
if ImgReader is TFPReaderXPM then begin
end;
inherited InitFPImageReader(ImgReader);
end;
procedure TXPMImage.FinalizeFPImageReader(ImgReader: TFPCustomImageReader);
var
XPMReader: TFPReaderXPM;
begin
if ImgReader is TFPReaderXPM then begin
XPMReader:=TFPReaderXPM(ImgReader);
end;
inherited FinalizeFPImageReader(ImgReader);
end;
procedure TXPMImage.InitFPImageWriter(ImgWriter: TFPCustomImageWriter);
var
XPMWriter: TFPWriterXPM;
begin
if ImgWriter is TFPWriterXPM then begin
XPMWriter:=TFPWriterXPM(ImgWriter);
if XPMWriter<>nil then ;
end;
inherited InitFPImageWriter(ImgWriter);
end;
function TXPMImage.GetDefaultFPReader: TFPCustomImageReaderClass;
begin
Result:=TFPReaderXPM;
end;
function TXPMImage.GetDefaultFPWriter: TFPCustomImageWriterClass;
begin
Result:=TFPWriterXPM;
end;
constructor TXPMImage.Create;
begin
inherited Create;
end;
function TXPMImage.GetFileExtensions: string;
begin
Result:='xpm';
end;
initialization
TPicture.RegisterFileFormat('xpm', 'XPM Image File', TXPMImage);
TPicture.RegisterClipboardFormat(RegisterClipboardFormat(DefaultXPMMimeType),
TXPMImage);
finalization
TPicture.UnregisterGraphicClass(TXPMImage);
end.

View File

@ -1,4 +1,3 @@
WARNING WARNING WARNING WARNING WARNING
This package is broken. Read further.
@ -6,24 +5,25 @@ This package is broken. Read further.
The pasjpeg code in the current fpc sources have a bug.
If you want jpeg, then you must use an older fpc and the jpeg from lazarus-ccr
on sourceforge. Not this package.
However, if you only need interlaced JPEG, you can use this package.
The Targa loder is not fully functional.
-------------------------------------------------------------------------------
We used a simple naming schema to help non expert working with this package.
The support type name and the support unit name are :
The lazarus TJPEGImage is in lazjpeg.pas
T$(most_common_extension)Image is in laz$(most_common_extension).pas
It uses the pasjpeg and fpimage libs provided by FreePascal. See there for in
The lazarus TPNGImage is in lazpng.pas
The lazarus TPNMImage is in lazpnm.pas
The lazarus TJPGImage is in lazjpg.pas
The lazarus TBMPImage is in lazbmp.pas
The lazarus TTGAImage is in laztga.pas
The lazarus TXPMImage is in lazxpm.pas
This package uses the fpimage libs provided by FreePascal in the FCL/Image. See there for in
more detailed jpeg handling.
JPEG (pronounced "jay-peg") is a standardized familly of algorithms for
compression of continous tone still images. Most JPEG processes are lossy,
the output image is not exactly identical to the input image. However, on
typical photographic images, very good compression levels can be obtained
with no visible change, and remarkably high compression levels are possible
if you can tolerate a low-quality image. The Independent JPEG Group (IJG) has
created a free, portable C library for JPEG compression and decompression of
JPEG images.
Please report bugs to "Mazen NEIFER" <mazen@freepascal.org>