From 33509999e90f7196ed0b0dff05270fbc91148d11 Mon Sep 17 00:00:00 2001 From: mattias Date: Mon, 4 Jun 2012 16:39:12 +0000 Subject: [PATCH] LCL: added TLazIntfImage.CreateCompatible constructor git-svn-id: trunk@37516 - --- lcl/include/tiffimage.inc | 26 ++++++++++++++------------ lcl/intfgraphics.pas | 17 +++++++++++++++-- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/lcl/include/tiffimage.inc b/lcl/include/tiffimage.inc index 10aba80162..85a7649d3e 100644 --- a/lcl/include/tiffimage.inc +++ b/lcl/include/tiffimage.inc @@ -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; diff --git a/lcl/intfgraphics.pas b/lcl/intfgraphics.pas index fbcec53313..96e7f1d610 100644 --- a/lcl/intfgraphics.pas +++ b/lcl/intfgraphics.pas @@ -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;