WEB开发网
开发学院软件开发Delphi 将多个jpg文件以追加形式合并成一个文件 阅读

将多个jpg文件以追加形式合并成一个文件

 2006-02-04 14:13:26 来源:WEB开发网   
核心提示: DFW里有朋友问:有多个jpg文件,如:1.jpg2.jpg3.jpg......怎样将这些文件以追加形式合并成一个新的jpg文件?也就是说1.jpg作为第一页,2.jpg作为第二页,如此类推.想了一下,思路就是把每个jpeg文件解码成位图以后进行拼接再编码为jpeguses ..., Jpeg;......PRoc
 

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单元偷懒咯,呵呵


Tags:多个 jpg 文件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接