ImageEn保存TIF后,文件不能查看
使用ImageEn将扫描的文件存为TIF格式时,原来由于保存的文件SIZE太大(20M以上),于是将原来的ImageEnMView1.MIO.SaveToFile(FileName)方法,改为ImageEnmview1.MIO.SaveToFileTIFF(FileName),这样文件明显变小了,才一两百K,同时使用Microsoft Office Document Imaging可以打开查看,但是用其它图像软件都不能查看,包括window的图片浏览器(Windows Picture and Fax Viewer)却不能查看,问题肯定还是出在保存上面,因为原来的ImageEnMView1.MIO.SaveToFile(FileName)虽然保存很大,但是起码各种软件可以打开查看.
各位高手帮忙看一下啊,其实最终的目的就是保存文件要小,各软件均可查看就可以了,保存文件代码如下:
function TSTSImageControl.Save(const FileName: WideString): WordBool;
var
i:integer;
begin
result:=false;
try
ScannerSet.CompressionType:=4;
SaveImageBitmap;
for i:=0 to ImageEnMView1.MIO.ParamsCount-1 do
begin
if uppercase(ExtractFileExt(FileName))='.TIF' then
begin
case ScannerSet.CompressionType of
0:ImageEnMView1.MIO.Params[i].TIFF_Compression:=ioTIFF_CCITT1D;
1:ImageEnMView1.MIO.Params[i].TIFF_Compression:=ioTIFF_G3FAX1D;
2:ImageEnMView1.MIO.Params[i].TIFF_Compression:=ioTIFF_G3FAX2D;
3:ImageEnMView1.MIO.Params[i].TIFF_Compression:=ioTIFF_G4FAX;
4:ImageEnMView1.MIO.Params[i].TIFF_Compression:=ioTIFF_JPEG;
else
ImageEnMView1.MIO.Params[i].TIFF_Compression:=ioTIFF_JPEG;
end;
end else
begin
ImageEnMView1.MIO.Params[i].TIFF_Compression:=ioTIFF_JPEG;
//ImageEnMView1.MIO.Params[i].TIFF_JPEGQuality:=ScannerSet.JPEGQuality;
end;
ImageEnMView1.MIO.Params[i].DpiX:=ScannerSet.XImageResolution;
ImageEnMView1.MIO.Params[i].DpiY:=ScannerSet.YImageResolution;
if (ImageEnMView1.MIO.Params[i].DpiX>0)and(ImageEnMView1.MIO.Params[i].DpiY>0) then
begin
ImageEnMView1.MIO.Params[i].Width:=
round(ImageEnMView1.MIO.Params[i].DpiX*self.ScannerSet.ImageWidth*Const_InchCm);
ImageEnMView1.MIO.Params[i].height:=
round(ImageEnMView1.MIO.Params[i].DpiY*self.ScannerSet.ImageHeight*Const_InchCm);
end else
begin
ImageEnMView1.MIO.Params[i].DpiX:=400;
ImageEnMView1.MIO.Params[i].DpiY:=400;
ImageEnMView1.MIO.Params[i].Width:=
round(400*self.ScannerSet.ImageWidth*Const_InchCm);
ImageEnMView1.MIO.Params[i].height:=
round(400*self.ScannerSet.ImageHeight*Const_InchCm);
end;
end;
ImageEnMView1.MIO.Update;
//ImageEnMView1.MIO.SaveToFile(FileName);
ImageEnmview1.MIO.SaveToFileTIFF(FileName);
except
exit;
end;
result:=true;
end;