DFW里有朋友问:
有多个jpg文件,如:1.jpg2.jpg3.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单元偷懒咯,呵呵
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18