这是一个批量修改图像格式的程序,有两个问题想请教一下,希望各位高手不吝赐教
如何修改,才能在保存图像时保存到其他目录而不到当前目录?就算该到其他指定目录也行
还有就是,我知道释放资源的时候用MeJpg.Free;那么这个MeJpg:=Nil;是什么意思呢?
 Finally
         MeJpg.Free;
         MeJpg:=Nil;
         MeBmp.Free;
         MeBmp:=Nil;----------------------------------------------------------------------
   
     Try
         MeBmp:=TBitMap.Create;
         MeJpg:=TJpegImage.Create;
         MeBmp.LoadFromFile(Files.Strings[I]);//载入BMP图片
         MeJpg.Assign(MeBmp);
         
MeJpg.CompressionQuality:=100;//压缩比例
         MeJpg.Compress;
         MeJpg.SaveToFile(SString+'\'+Copy(ExtractFileName(Files.Strings[I])
                     ,0,Length(ExtractFileName(Files.Strings[I]))
                     -4)+'.JPG');//将转换后的JPG图片存储到当前目录下
    Finally
         MeJpg.Free;
         MeJpg:=Nil;
         MeBmp.Free;
         MeBmp:=Nil;
      end;

解决方案 »

  1.   

    这就是bmp转jpg过程,SaveToFile保存文件,可以修路径参数,设置为nil就是为了后面不访问非法地址,可以判断是不是nil
      

  2.   

    1. mejpg.free是释放对象(但是mejpg这个变量还是保存着对象的地址的),mejpg:=nil是说让mejpg这个变量是空值,不在保存其对象的地址。 如果你对delphi不熟的话可以简单理解成“完全的、干净的”释放mejpg对象。Mejgp.free和mejpg:=nil也可以用FreeAndNil(Mejpg)代替,效果一样,但是你要引用SysUtils单元;
    2.如果要保存到其它目录的话,修改 MeJpg.SaveToFile(SString+'\'+Copy(ExtractFileName(Files.Strings[I])
      ,0,Length(ExtractFileName(Files.Strings[I]))这句就行了;