[fpc-pascal] FPImage and mult-page TIFF support
Graeme Geldenhuys
mailinglists at geldenhuys.co.uk
Thu Dec 8 16:15:55 CET 2016
On 2016-12-08 14:22, Mattias Gaertner wrote:
>> > This might be a good solution. Some ready-made event handlers.
> Any idea how that should look like?
In the TFPReaderTiff class, define public methods (possibly marked as
virtual) as follows.... Here's one example:
procedure TFPReaderTiff.CreateCompactTiffImage(Sender: TFPReaderTiff;
IFD: TTiffIFD);
var
Desc: TFPCompactImgDesc;
begin
// free old image
FreeAndNil(IFD.Img);
Desc.HasAlpha := IFD.AlphaBits > 0;
Desc.Gray := IFD.PhotoMetricInterpretation in [0,1];
Desc.Depth := Max(Max(Max(IFD.RedBits,
IFD.GreenBits),
IFD.BlueBits),
IFD.GrayBits);
IFD.Img := CreateFPCompactImg(Desc, IFD.ImageWidth, IFD.ImageHeight);
end;
You can then use those as follows:
t := TFPReaderTiff.Create;
t.OnCreateImage := @t.CreateCompactTiffImage; // <<-- here
t.LoadFromStream(filestream, true);
No need for every developer to go through the pain of having to figure
out how to use TFPReaderTiff and how to implement OnCreateImage event
handlers. In the FPDoc documentation of TFPReaderTIFF.OnCreateImage,
list the available built-in event handlers that are there for
convenience, and than you can implement your own if you have other needs.
If having those convenience event handler inside the TFPTiffReader class
is an issue, then create another unit with some other class where those
are defined and can be easily referenced.
It's not rocket science. ;-)
Regards,
Graeme
--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/
My public PGP key: http://tinyurl.com/graeme-pgp
More information about the fpc-pascal
mailing list