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

一、功能介绍:

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

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("成功");

合成的图片展示如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fervour

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值