使用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;