首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

tif页数统计求教!该如何解决

2012-09-06 
tif页数统计求教!RT,小弟需要批量统计TIF页数,不知道如何批量打开和通过什么来获取TIF的页数参数?求大虾赐

tif页数统计求教!
RT,小弟需要批量统计TIF页数,不知道如何批量打开和通过什么来获取TIF的页数参数?求大虾赐教!谢谢

[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
var
I, Count: Integer;
Clsid: TClsid;
Parameters: TEncoderParameters;
Quality: Integer;
Image: TGpImage;
GUID: TGUID;
begin
// 打开图像文件
Image := TGpImage.Create('E:\test\test.tif');
try
// 获取图像所有帧维度的GUID,这里我们只取第一个
Image.GetFrameDimensionsList(@GUID, 1);
// 通过获取维度的GUID,取得图像的帧(页)数量
Count := Image.GetFrameCount(GUID);

// 下面设置自定义的编码参数,这里为1个参数
Parameters.Count := 1;
// 设置参数唯一标志的GUID,这里为编码品质
Parameters.Parameter[0].Guid := EncoderQuality;
// 设置参数值的数据类型为长整型
Parameters.Parameter[0].Type_ := EncoderParameterValueTypeLong;
Parameters.Parameter[0].NumberOfValues := 1;
// 设置参数的值:品质等级,最高为100,图像文件大小与品质成正比
Quality := 100;
Parameters.Parameter[0].Value := @Quality;

// 获取图像格式JPEG编码器的ClsID
GetEncoderClsid('image/jpeg', Clsid);

// 选择图像的各个帧为当前帧,并依次保存为jpg文件
for I := 0 to Count - 1 do
begin
Image.SelectActiveFrame(GUID, I);
Image.Save('Hb' + IntToStr(I) + '.jpg', Clsid, @Parameters);
end;
finally
Image.Free;
end;
end;

end.

热点排行