You could try to process (load and save) an image at the time. For example:
var
imagePath: string;
x, i, oindex, pcount: integer;
ie: TImageEnView;
c: TRGB;
function getname():string;
begin
result := Format('%d.tif', [x])
end;
begin
imagePath := 'test.tiff';
x := 0;
ie := TImageEnView.Create(nil);
pcount := EnumTIFFIm(imagePath);
oindex := 0;
for i:=0 to pcount-1 do
begin
ie.IO.Params.ImageIndex := i;
ie.IO.LoadFromFile(imagePath);
if ie.Proc.GetDominantColor(c) > 93 then
begin
// blank page
inc(x);
oindex := 0;
end
else
begin
ie.IO.Params.ImageIndex := oindex;
if FileExists(getname()) then
ie.IO.InsertToFileTIFF(getname())
else
ie.IO.SaveToFileTIFF(getname());
inc(oindex);
end;
end;
ie.Free();
end;