C#使用Graphics简单横向拼接图片

一、功能介绍:

              单纯将图片进行横向拼接,并且拼接的图片上面留下黑条。

int blackHeight = 100;  //拼接图片上面黑条
//拼接图片的列表
List imgList = new List();
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("成功");

合成的图片展示如下:

C#使用Graphics简单横向拼接图片_第1张图片

你可能感兴趣的:(Graphics)