bmp转jpg(10分)

  • 主题发起人 主题发起人 true_feiyun
  • 开始时间 开始时间
T

true_feiyun

Unregistered / Unconfirmed
GUEST, unregistred user!
请问我要把指定一个目录下的所有bmp文件转换为jpg文件,用delphi代码该怎么写,谢谢!
 
把BMP转为JPG
uses
Jpeg;

Var
Bitmap:TBitmap;
jpg :TJpegImage;


begin
Jpg:=TJpegImage.Create;
Bitmap:=TBitmap.Create;
Bitmap.LoadFromFile('c:/1.bmp');
Jpg.Assign(Bitmap);
Jpg.SaveToFile('c:/1.jpg');
end;
 
Jpg.Assign(Bitmap);
jpg.CompressionQuality:=100;
jpg.Compress;
Jpg.SaveToFile('c:/1.jpg');
 
建议:这种问题
你在旧资料里能找到更全的答案
 
以上这些好象只能实现单个文件的转换呀,我的意思是能够把某个目录的所有文件,
比如说通过程序把两个或两个以上的bmp一次都转换成jpg,谢谢!
 
批量转换吗?

先得到文件夹中的*.bmp文件列表,然后把上面的程序作成过程,循环调用过程,把
文件名,依次附进去就可以了

uses
Jpeg;

implementation
Var
Bitmap:TBitmap;
jpg :TJpegImage;
procedure bmptojpg(bmpfilename,jpgfilename:string);
begin
Jpg:=TJpegImage.Create;
Bitmap:=TBitmap.Create;
Bitmap.LoadFromFile(bmpfilename);
Jpg.Assign(Bitmap);
Jpg.SaveToFile(jpgfilename);
end;
 
API函数,FindFirstFile,FindNextFile可实现文件查找
帮助写的比较详细
 
麻烦可以具体写一下实现批量转换的代码吗,谢谢!
 
下面是一个进行目录搜索的例程,经过修改你可以搜索需要的文件类型

procedure Searchpath(path:string);
var
searchrec:TSearchRec;
ext:string;
begin
//在路径后面加上'/'
if path[length(path)]<>'/' then path := path + '/';
if FindFirst(path+'*.*', faAnyFile, SearchRec)<>0 then exit;
//判断是否为目录,是目录则循环
if(searchrec.Attr and faDirectory) <> 0 then
if(searchrec.name<>'.')and(searchrec.name<>'..')then searchpath(path+searchrec.name)
else begin
{此处加上你自已的判断文件后缀的代码
ext:=lowercase(extractfileext( searchrec.Name ));
if(ext='.bmp')or(ext='.jpg')then begin
...
end;
}
end;
while findnext(searchrec)=0 do begin
if(searchrec.Attr and faDirectory) <> 0 then
if(searchrec.name<>'.')and(searchrec.name<>'..')then searchpath(path+searchrec.name)
else begin
{此处加上你自已的判断文件后缀的代码
ext:=lowercase(extractfileext(searchrec.Name));
if(ext='.bmp')or(ext='.jpg')then begin
...
end;
}
end;
end;
findclose(searchrec);
end;
 
后退
顶部