[原创] 将多个jpg文件以追加形式合并成一个文件

王朝delphi·作者佚名  2006-01-09
宽屏版  字体: |||超大  

DFW里有朋友问:

有多个jpg文件,如:

1.jpg

2.jpg

3.jpg

......

怎样将这些文件以追加形式合并成一个新的jpg文件?也就是说1.jpg作为第一页,2.jpg作为第二页,如此类推.

想了一下,思路就是把每个jpeg文件解码成位图以后进行拼接再编码为jpeg

uses ..., Jpeg;

......

procedure TForm1.Button1Click(Sender: TObject);

var

jp1, jp2, jp: TJPEGImage;

bmp_t, bmp: TBitmap;

begin

jp1 := TJPEGImage.Create;

jp2 := TJPEGImage.Create;

jp := TJPEGImage.Create;

try

jp1.LoadFromFile('C:\1.jpg');

jp2.LoadFromFile('C:\2.jpg');

bmp := TBitmap.Create;

bmp_t := TBitmap.Create;

try

bmp.Width := jp1.Width;

bmp.Height := jp1.Height + jp2.Height;

bmp_t.Assign(jp1);

bmp.Canvas.Draw(0, 0, bmp_t);

bmp_t.Assign(jp2);

bmp.Canvas.Draw(0, jp1.Height, jp2);

jp.Assign(bmp);

jp.SaveToFile('C:\0.jpg');

finally

bmp.Free;

bmp_t.Free;

end;

finally

jp1.Free;

jp2.Free;

jp.Free;

end;

end;

这里两个原始jpeg图片的宽高都是一样的,如果图片宽度可能不一致那可以先计算一下所有图片的最大宽度,再画就行了。

由于懒得研究jpeg的文件结构和压缩算法,就拿delphi自带的Jpeg单元偷懒咯,呵呵

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有