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

合成的图片展示如下:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C是计算机科学中的一门编程语言。它是由美国贝尔实验室的丹尼斯·里奇于20世纪70年代初开发的。C语言以其简洁、高效和可移植性而闻名,成为了许多计算机操作系统和应用程序的首选开发语言。 C语言的设计目标是提供一种底层的、通用的编程语言,能够运行在多种计算机平台上。它的语法与底层计算机硬件密切相关,允许程序员直接访问内存和硬件资源。这使得C语言非常适合开发系统软件和嵌入式系统。 C语言的语法简洁但功能强大。它支持多种数据类型,包括整数、浮点数、字符和指针等。同时,C语言具有丰富的控制结构,如条件语句、循环语句和函数等,使得程序员能够精确地控制程序的执行流程。 C语言的可移植性也是其重要特点之一。由于它与底层硬件密切相关,编写的C程序可以在不同的操作系统和计算机架构上运行,只需要进行一些简单的调整和编译。这种特性使得C语言成为了跨平台开发的首选语言。 虽然C语言的语法相对较低级,但它为程序员提供了良好的抽象能力和灵活性,使得程序开发更加高效。此外,C语言还提供了丰富的库函数,方便程序员开发各种应用程序。 总的来说,C语言在计算机科学中有着重要的地位,它是一门功能强大且广泛使用的编程语言。无论是操作系统、应用程序还是嵌入式系统的开发,C语言都是一种理想的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

fervour

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

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

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

打赏作者

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

抵扣说明:

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

余额充值