tif页数统计求教!

piaoren0230 2011-10-11 11:02:07
RT,小弟需要批量统计TIF页数,不知道如何批量打开和通过什么来获取TIF的页数参数?求大虾赐教!谢谢
...全文
257 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
piaoren0230 2011-10-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sz_haitao 的回复:]
好像gdi+支持
[/Quote]
具体的请指教!
haitao 2011-10-11
  • 打赏
  • 举报
回复
好像gdi+支持
aaron6966 2011-10-11
  • 打赏
  • 举报
回复
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.
haitao 2011-10-11
  • 打赏
  • 举报
回复
我也是从万一的博客看到过的:
http://www.cnblogs.com/del/archive/2009/12/30/1636104.html

TIFF 与 GIF 是多帧图像; GIF 还可以关联时间形成动画.

在编码或解码多帧图像的过程中会用到下面两个常数值:
FrameDimensionPage (用于 TIFF)
FrameDimensionTime (用于 GIF)

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧