LCL: added TLazIntfImage.CreateCompatible constructor

git-svn-id: trunk@37516 -
This commit is contained in:
mattias 2012-06-04 16:39:12 +00:00
parent 799d77f145
commit 33509999e9
2 changed files with 29 additions and 14 deletions

View File

@ -31,11 +31,13 @@ var
D, T: TDateTime;
S: String;
YY, MM, DD, HH, NN, SS: Integer;
IFD: TTiffIFD;
begin
FArtist := TFPReaderTiff(AReader).FirstImg.Artist;
FCopyright := TFPReaderTiff(AReader).FirstImg.Copyright;
IFD:=TFPReaderTiff(AReader).FirstImg;
FArtist := IFD.Artist;
FCopyright := IFD.Copyright;
S := TFPReaderTiff(AReader).FirstImg.DateAndTime;
S := IFD.DateAndTime;
// YYYY:MM:DD HH:MM:SS
// 0000000001111111111
// 1234567890123456789
@ -50,21 +52,21 @@ begin
then FDateTime := D + T
else FDateTime := 0;
FDocumentName := TFPReaderTiff(AReader).FirstImg.DocumentName;
FHostComputer := TFPReaderTiff(AReader).FirstImg.HostComputer;
FImageDescription := TFPReaderTiff(AReader).FirstImg.ImageDescription;
FMake := TFPReaderTiff(AReader).FirstImg.Make_ScannerManufacturer;
FModel := TFPReaderTiff(AReader).FirstImg.Model_Scanner;
case TFPReaderTiff(AReader).FirstImg.ResolutionUnit of
FDocumentName := IFD.DocumentName;
FHostComputer := IFD.HostComputer;
FImageDescription := IFD.ImageDescription;
FMake := IFD.Make_ScannerManufacturer;
FModel := IFD.Model_Scanner;
case IFD.ResolutionUnit of
1: FResolutionUnit := tuNone;
2: FResolutionUnit := tuInch;
3: FResolutionUnit := tuCentimeter;
else
FResolutionUnit := tuUnknown;
end;
FSoftware := TFPReaderTiff(AReader).FirstImg.Software;
FXResolution := TFPReaderTiff(AReader).FirstImg.XResolution;
FYResolution := TFPReaderTiff(AReader).FirstImg.YResolution;
FSoftware := IFD.Software;
FXResolution := IFD.XResolution;
FYResolution := IFD.YResolution;
inherited;
end;

View File

@ -236,6 +236,7 @@ type
constructor Create(AWidth, AHeight: integer); override;
constructor Create(AWidth, AHeight: integer; AFlags: TRawImageQueryFlags);
constructor Create(ARawImage: TRawImage; ADataOwner: Boolean);
constructor CreateCompatible(IntfImg: TLazIntfImage; AWidth, AHeight: integer);
destructor Destroy; override;
procedure BeginUpdate;
procedure EndUpdate;
@ -3243,6 +3244,18 @@ begin
ChooseGetSetColorFunctions;
end;
constructor TLazIntfImage.CreateCompatible(IntfImg: TLazIntfImage; AWidth,
AHeight: integer);
var
Desc: TRawImageDescription;
begin
Create(0,0);
Desc:=IntfImg.DataDescription;
Desc.Width:=AWidth;
Desc.Height:=AHeight;
DataDescription:=Desc;
end;
destructor TLazIntfImage.Destroy;
begin
FreeData;
@ -3554,8 +3567,8 @@ begin
end;
end;
procedure TLazIntfImage.CopyPixels(ASource: TFPCustomImage; XDst, YDst: Integer;
AlphaMask: Boolean; AlphaTreshold: Word);
procedure TLazIntfImage.CopyPixels(ASource: TFPCustomImage; XDst: Integer;
YDst: Integer; AlphaMask: Boolean; AlphaTreshold: Word);
var
SrcImg: TLazIntfImage absolute ASource;
SrcHasMask, DstHasMask: Boolean;