程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 將多個jpg文件以追加形式合並成一個文件

將多個jpg文件以追加形式合並成一個文件

編輯:Delphi
 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:.jpg');
      finally
        bmp.Free;
        bmp_t.Free;
      end;
    finally
      jp1.Free;
      jp2.Free;
      jp.Free;
    end;
  end;

  這裡兩個原始jpeg圖片的寬高都是一樣的,如果圖片寬度可能不一致那可以先計算一下所有圖片的最大寬度,再畫就行了。

  由於懶得研究jpeg的文件結構和壓縮算法,就拿Delphi自帶的Jpeg單元偷懶咯,呵呵


  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved