首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

在学习别人程序时遇到两个有关问题,特来想高手请问

2012-03-06 
在学习别人程序时遇到两个问题,特来想高手请教这是一个批量修改图像格式的程序,有两个问题想请教一下,希望

在学习别人程序时遇到两个问题,特来想高手请教
这是一个批量修改图像格式的程序,有两个问题想请教一下,希望各位高手不吝赐教
如何修改,才能在保存图像时保存到其他目录而不到当前目录?就算该到其他指定目录也行
还有就是,我知道释放资源的时候用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;


[解决办法]
这就是bmp转jpg过程,SaveToFile保存文件,可以修路径参数,设置为nil就是为了后面不访问非法地址,可以判断是不是nil
[解决办法]
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]))这句就行了;

热点排行