请问使用GDI+的压缩EncoderCompression,对被压缩图片有没有格式的要求,能不能对tif文件进行压缩?谢谢~~~~
解决方案 »
- 请教copyfile函数rename函数在vista下运行的问题
- 我有一个程序 不知怎么设计 重金
- 求教delphi调用word后查询其中的字段并更改的问题?
- 怎样在grid中只可进行修改,不能进行增加
- 用InstallShield Develop 8如何把BDE打包进去?
- 如何将Delphi的控件转化成ocx呢?
- 大家在表中有一个编号信息是怎么搞定的!?!
- 谁能告诉我专门打DELPHI程序的INSTALLSHIELD下载!!!!!!
- 如何让指定数目的小球均匀附着在大球表面?
- 一个很纳闷的关于adotable的问题
- DELPHI的 CHECKBOX的多选查询—————求指教—————标题要长才行啊
- 请教一下Delphi下的SOCKET完成端口
var clsid: TGUID;
ext, format: string;
Quality: Cardinal;
Parameters: TEncoderParameters;
begin
ext := ExtractFileExt(fname);
if CompareText(ext, '.bmp') = 0 then format := 'bmp'
else if CompareText(ext, '.jpg') = 0 then format := 'jpeg'
else if CompareText(ext, '.png') = 0 then format := 'png'
else if CompareText(ext, '.tif') = 0 then format := 'tiff';
if gdiplus.GetEncoderClsid('Image/' + format, CLSID) then
begin
Parameters.Count := 1;
Parameters.Parameter[0].NumberOfValues := 1;
Quality := 100;
Parameters.Parameter[0].Value := @Quality;
Bmp.Save(fname, CLSID, @Parameters);
end;
end;
aImage.Save('XXX.tif', Clsid, @Param1);
......
aImage.SaveAdd(@Param2);
Param1用的是EncoderSaveFlag,因为要保存多页;Param2是压缩
//Param2
Param2.Count := 1;
Param2.GUID := EncoderCompression;
Param2.Parameter[0].type_ := EncoderParameterValueTypeLong;
Param2.Parameter[0].NumberOfValues := 1;
Param2.Parameter[0].Value := @Value;
Value := EncoderValueCompressionCCITT4; 运行后没出错,但也没压缩,还是LZW
Parameters.Parameter[0].Guid := EncoderCompression;
Parameters.Parameter[0].NumberOfValues := 1;
Parameters.Parameter[0].Type_ := EncoderParameterValueTypeLong;
Value :=EncoderValueCompressionCCITT4;
Parameters.Parameter[0].Value := @Value;肯定能压缩