C# 合并两张图片

本文介绍了一种使用C# WPF技术将两张BitmapSource图片合并为一张的方法。通过创建新的RenderTargetBitmap并利用DrawingVisual进行绘制,实现了图片的垂直拼接。
private BitmapSource CombineImage(BitmapSource img1,BitmapSource img2)
{
   var composeImg = new RenderTargetBitmap(img1.PixelWidth,
     img1.PixelHeight+img2.PixelHeight,
     img1.DpiX,
     img1.DpiY,
     PixelFormat.Default );
 
   var dv = new DrawingVisual();
   using(var dc = dv.RenderOpen())
    {
       dc.DrawImage(img1,new Rect(0,0,img1.PixelWidth,img1.PixelHeight));
       dc.DrawImage(img1,new Rect(0,0,img2.PixelWidth,img2.PixelHeight));

       composeImg.Render(dv);
    }

   return composeImg;
}      

 

转载于:https://www.cnblogs.com/144823836yj/p/8695809.html

C#中,可以使用`System.Drawing`命名空间下的类来垂直合并两张图片。以下是一个示例代码,展示了如何将两张图片垂直合并: ```csharp using System; using System.Drawing; class Program { static void Main() { // 加载两张图片 Image image1 = Image.FromFile("path_to_image1.jpg"); Image image2 = Image.FromFile("path_to_image2.jpg"); // 创建一张新图片,宽度为两张图片中较大的宽度,高度为两张图片高度之和 int width = Math.Max(image1.Width, image2.Width); int height = image1.Height + image2.Height; Bitmap finalImage = new Bitmap(width, height); // 使用Graphics对象进行绘图 using (Graphics graphics = Graphics.FromImage(finalImage)) { // 绘制第一张图片 graphics.DrawImage(image1, 0, 0, image1.Width, image1.Height); // 绘制第二张图片,位置在第一张图片下方 graphics.DrawImage(image2, 0, image1.Height, image2.Width, image2.Height); } // 保存合并后的图片 finalImage.Save("path_to_final_image.jpg"); // 释放资源 image1.Dispose(); image2.Dispose(); finalImage.Dispose(); } } ``` ### 解释 1. **加载图片**: - 使用`Image.FromFile`方法加载两张图片。 - 确保图片路径正确。 2. **创建新图片**: - 新图片的宽度为两张图片中较大的宽度,高度为两张图片高度之和。 - 使用`Bitmap`类创建一个新的位图。 3. **绘制图片**: - 使用`Graphics`对象在新的位图上进行绘图。 - 首先绘制第一张图片,位置在左上角(0, 0)。 - 然后绘制第二张图片,位置在第一张图片的下方(0, image1.Height)。 4. **保存图片**: - 使用`Save`方法将合并后的图片保存到指定路径。 5. **释放资源**: - 使用`Dispose`方法释放图片资源,避免内存泄漏。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值