VoyForums
[ Show ]
Support VoyForums
[ Shrink ]
VoyForums Announcement: Programming and providing support for this service has been a labor of love since 1997. We are one of the few services online who values our users' privacy, and have never sold your information. We have even fought hard to defend your privacy in legal cases; however, we've done it with almost no financial support -- paying out of pocket to continue providing the service. Due to the issues imposed on us by advertisers, we also stopped hosting most ads on the forums many years ago. We hope you appreciate our efforts.

Show your support by donating any amount. (Note: We are still technically a for-profit company, so your contribution is not tax-deductible.) PayPal Acct: Feedback:

Donate to VoyForums (PayPal):

Login ] [ Contact Forum Admin ] [ Main index ] [ Post a new message ] [ Search | Check update time | Archives: 12[3]45678910 ]


[ Next Thread | Previous Thread | Next Message | Previous Message ]

Date Posted: 20:24:23 07/15/03 Tue
Author: Yosi Mazal-Tov
Subject: Working With FrameCount In TIFF

Hi There.

If You Load Image Into TIF And The Tif Is MultiPage Then
The Secend Time You Load Tiff Image The Frames Are Add And So On...

procedure a_loadfromfile(FileName : String; MyDib :TDibGraphic) : Boolean;
begin
.
MyDib.MultiLoad := True;
MyDib.LoadFromFile(Filename);
.
.
Result := Not MyDib.IsEmpty;
end;

If Image1 have 5 Images And You Load It With a_loadfromfile
And PrintIt With QuickReport Using QrImage
And Then Load Image2 And He Too Have 5 Images Then
If We Check The FrameCount You Gat In The Secend Image
10 Frames
So You Print 15 Pages
..
..
Private
TmpDib : TDibGraphic;
..
..
QuickReport Detail Band..

..
..
Var
FileName : String;

Begin
FileName := DetailBand.DataSet.FieldbyName('Filename').AsString;

If a_loadfromfile(FileName,TmpDib) Then
IF TmpDib.FrameCount = 0 Then {Single Image}
begin
..
..
end
else
begin
..
..
end

The Solution i Think Is To Clear the FFrames Items In The
LoadFromStream

procedure TDibGraphic.LoadFromStream(Stream: TStream);
var
ImageNo : LongInt;
ImageCount : LongInt;
DibGraphic : TDibGraphic;
DibGraphicClass : TDibGraphicClass;
WasAnimated : Boolean;
SavedPos : LongInt;
begin
WasAnimated := Animated;
Animated := False;
try

{START - ADDED BY YOSI}
IF (FFrames <> nil) And
(FFrames.Count > 0) Then
begin
for ImageNo := FFrames.Count-1 DownTo 0 do
begin
Try TDibGraphic(FFrames.Items[ImageNo]).Free; Except; End;
Try FFrames.Delete(ImageNo); Except; End;
end;
end;
{END - ADDED BY YOSI}
...
...
...
end;

[ Next Thread | Previous Thread | Next Message | Previous Message ]


Replies:


[ Contact Forum Admin ]


Forum timezone: GMT-5
VF Version: 3.00b, ConfDB:
Before posting please read our privacy policy.
VoyForums(tm) is a Free Service from Voyager Info-Systems.
Copyright © 1998-2019 Voyager Info-Systems. All Rights Reserved.