一、功能介绍:
单纯将图片进行横向拼接,并且拼接的图片上面留下黑条。
int blackHeight = 100; //拼接图片上面黑条
//拼接图片的列表
List<string> imgList = new List<string>();
imgList.Add(@"D:\Image\timg1.jpg");
imgList.Add(@"D:\Image\timg2.jpg");
imgList.Add(@"D:\Image\timg3.jpg");
imgList.Add(@"D:\Image\timg4.jpg");
// 1、计算总宽度
int newWidth = 0; //新图片的宽度
int newHeight = 0; //新图片的高度
foreach (var item in imgList)
{
Image imgItem = Image.FromFile(item);
newWidth += imgItem.Width;
int nHeight = imgItem.Height + blackHeight;
if (nHeight > newHeight)
newHeight = nHeight;
imgItem.Dispose();
}
// 2、初始化一个图片
Bitmap newPhoto = new Bitmap(newWidth, newHeight, PixelFormat.Format24bppRgb);
Graphics grnewPhoto = Graphics.FromImage(newPhoto);
// 3、循环将图片绘制到新图片上
int left = 0;
for (int i = 0; i < imgList.Count; i++)
{
string item = imgList[i];
Image imgItem = Image.FromFile(item);
int width = imgItem.Width;
int height = imgItem.Height;
//绘图
grnewPhoto.DrawImage(
imgItem,
new Rectangle(left, blackHeight, width, height),
0,
0,
width,
height,
GraphicsUnit.Pixel);
imgItem.Dispose();
left += width;
}
//文件保存的路径
string targetFilePath = @"D:\Image\newImg.jpg";
// 4、保存图片
newPhoto.Save(targetFilePath, ImageFormat.Jpeg);
// 5、释放资源
grnewPhoto.Dispose();
newPhoto.Dispose();
if (File.Exists(targetFilePath))
MessageBox.Show("成功");
合成的图片展示如下: