|
@@ -22,7 +22,10 @@ uses sysutils, classes;
|
|
type
|
|
type
|
|
|
|
|
|
TFPCustomImageReader = class;
|
|
TFPCustomImageReader = class;
|
|
|
|
+ TFPCustomImageReaderClass = class of TFPCustomImageReader;
|
|
TFPCustomImageWriter = class;
|
|
TFPCustomImageWriter = class;
|
|
|
|
+ TFPCustomImageWriterClass = class of TFPCustomImageWriter;
|
|
|
|
+ TIHData = class;
|
|
TFPCustomImage = class;
|
|
TFPCustomImage = class;
|
|
|
|
|
|
FPImageException = class (exception);
|
|
FPImageException = class (exception);
|
|
@@ -125,14 +128,20 @@ type
|
|
constructor create (AWidth,AHeight:integer); virtual;
|
|
constructor create (AWidth,AHeight:integer); virtual;
|
|
destructor destroy; override;
|
|
destructor destroy; override;
|
|
procedure Assign(Source: TPersistent); override;
|
|
procedure Assign(Source: TPersistent); override;
|
|
|
|
+ // Image handlers
|
|
|
|
+ class function FindHandlerFromExtension(extension:String): TIHData;
|
|
|
|
+ class function FindReaderFromFileName(const filename:String): TFPCustomImageReaderClass;
|
|
|
|
+ class function FindReaderFromExtension(const extension:String): TFPCustomImageReaderClass;
|
|
|
|
+ class function FindWriterFromFileName(const filename:String): TFPCustomImageWriterClass;
|
|
|
|
+ class function FindWriterFromExtension(const extension:String): TFPCustomImageWriterClass;
|
|
// Saving and loading
|
|
// Saving and loading
|
|
procedure LoadFromStream (Str:TStream; Handler:TFPCustomImageReader);
|
|
procedure LoadFromStream (Str:TStream; Handler:TFPCustomImageReader);
|
|
procedure LoadFromStream (Str:TStream);
|
|
procedure LoadFromStream (Str:TStream);
|
|
procedure LoadFromFile (const filename:String; Handler:TFPCustomImageReader);
|
|
procedure LoadFromFile (const filename:String; Handler:TFPCustomImageReader);
|
|
- procedure LoadFromFile (const filename:String);
|
|
|
|
|
|
+ function LoadFromFile (const filename:String): Boolean;
|
|
procedure SaveToStream (Str:TStream; Handler:TFPCustomImageWriter);
|
|
procedure SaveToStream (Str:TStream; Handler:TFPCustomImageWriter);
|
|
procedure SaveToFile (const filename:String; Handler:TFPCustomImageWriter);
|
|
procedure SaveToFile (const filename:String; Handler:TFPCustomImageWriter);
|
|
- procedure SaveToFile (const filename:String);
|
|
|
|
|
|
+ function SaveToFile (const filename:String): Boolean;
|
|
// Size and data
|
|
// Size and data
|
|
procedure SetSize (AWidth, AHeight : integer); virtual;
|
|
procedure SetSize (AWidth, AHeight : integer); virtual;
|
|
property Height : integer read FHeight write SetHeight;
|
|
property Height : integer read FHeight write SetHeight;
|
|
@@ -164,7 +173,7 @@ type
|
|
PFPIntegerArray = ^TFPIntegerArray;
|
|
PFPIntegerArray = ^TFPIntegerArray;
|
|
|
|
|
|
TFPMemoryImage = class (TFPCustomImage)
|
|
TFPMemoryImage = class (TFPCustomImage)
|
|
- private
|
|
|
|
|
|
+ protected
|
|
function GetInternalColor(x,y:integer):TFPColor;override;
|
|
function GetInternalColor(x,y:integer):TFPColor;override;
|
|
procedure SetInternalColor (x,y:integer; const Value:TFPColor);override;
|
|
procedure SetInternalColor (x,y:integer; const Value:TFPColor);override;
|
|
procedure SetUsePalette (Value:boolean);override;
|
|
procedure SetUsePalette (Value:boolean);override;
|
|
@@ -199,16 +208,18 @@ type
|
|
protected
|
|
protected
|
|
procedure InternalRead (Str:TStream; Img:TFPCustomImage); virtual; abstract;
|
|
procedure InternalRead (Str:TStream; Img:TFPCustomImage); virtual; abstract;
|
|
function InternalCheck (Str:TStream) : boolean; virtual; abstract;
|
|
function InternalCheck (Str:TStream) : boolean; virtual; abstract;
|
|
|
|
+ function InternalSize (Str:TStream): TPoint; virtual;
|
|
public
|
|
public
|
|
constructor Create; override;
|
|
constructor Create; override;
|
|
function ImageRead (Str:TStream; Img:TFPCustomImage) : TFPCustomImage;
|
|
function ImageRead (Str:TStream; Img:TFPCustomImage) : TFPCustomImage;
|
|
// reads image
|
|
// reads image
|
|
function CheckContents (Str:TStream) : boolean;
|
|
function CheckContents (Str:TStream) : boolean;
|
|
- // Gives True if contents is readable
|
|
|
|
|
|
+ // Returns true if the content is readable
|
|
|
|
+ function ImageSize(Str:TStream): TPoint;
|
|
|
|
+ // returns the size of image in stream without loading it completely. -1,-1 means this is not implemented.
|
|
property DefaultImageClass : TFPCustomImageClass read FDefImageClass write FDefImageClass;
|
|
property DefaultImageClass : TFPCustomImageClass read FDefImageClass write FDefImageClass;
|
|
// Image Class to create when no img is given for reading
|
|
// Image Class to create when no img is given for reading
|
|
end;
|
|
end;
|
|
- TFPCustomImageReaderClass = class of TFPCustomImageReader;
|
|
|
|
|
|
|
|
TFPCustomImageWriter = class (TFPCustomImageHandler)
|
|
TFPCustomImageWriter = class (TFPCustomImageHandler)
|
|
protected
|
|
protected
|
|
@@ -217,7 +228,6 @@ type
|
|
procedure ImageWrite (Str:TStream; Img:TFPCustomImage);
|
|
procedure ImageWrite (Str:TStream; Img:TFPCustomImage);
|
|
// writes given image to stream
|
|
// writes given image to stream
|
|
end;
|
|
end;
|
|
- TFPCustomImageWriterClass = class of TFPCustomImageWriter;
|
|
|
|
|
|
|
|
TIHData = class
|
|
TIHData = class
|
|
private
|
|
private
|