游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1753|回复: 2

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

[复制链接]

1367

主题

1993

帖子

2118

积分

金牌会员

Rank: 6Rank: 6

积分
2118
发表于 2005-4-18 21:59:00 | 显示全部楼层 |阅读模式

有多个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单元偷懒咯.

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-4-20 16:30:00 | 显示全部楼层

Re:将多个jpg文件以追加形式合并成一个文件wxh zt

无语,不是delphi的么?

19

主题

116

帖子

122

积分

注册会员

Rank: 2

积分
122
QQ
发表于 2005-4-24 18:02:00 | 显示全部楼层

Re:将多个jpg文件以追加形式合并成一个文件wxh zt

怎么不发到DELPHI游戏开发区去?
http://bbs.gameres.com/showforum.asp?forumid=48
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 10:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表