C#将图像区域复制并粘贴到另一幅图像中

24
我正在尝试编写一个实用类,允许可平铺的图像自动调整大小。假设有一个名为srcBitmap的源位图,我从中复制一个由矩形srcRegion给定的区域。然后,我想要将该区域(在像素信息方面)粘贴到另一个名为destBitmap的图像中,在一个目标区域Rectangle destRegion中。
我知道如何从源获取该区域并将其放入一个位图对象中,但我还没有找到如何将一个位图对象实际粘贴到另一个更大的位图对象内的特定区域中。
是否有快捷的方法来完成这个任务?(不使用GDI,并且不深入研究位图的字节数组)。以下代码片段应该说明我的目标:
    private static void CopyRegionIntoImage(Bitmap srcBitmap, Rectangle srcRegion, Bitmap destBitmap, Rectangle destRegion)
    {
        // get the required region from the destination
        Bitmap region = Copy(srcBitmap, srcRegion);
    }

2
你已经在使用Bitmap类与GDI+了。 - dvdvorle
谢谢!我猜 .Net 4.0 框架有这个库的包装器。我不知道,因为 C# 和 dotNet 不是我的专业领域。 - teodron
1个回答

39

使用这个:

    public static void CopyRegionIntoImage(Bitmap srcBitmap, Rectangle srcRegion,ref Bitmap destBitmap, Rectangle destRegion)
    {
        using (Graphics grD = Graphics.FromImage(destBitmap))            
        {
            grD.DrawImage(srcBitmap, destRegion, srcRegion, GraphicsUnit.Pixel);                
        }
    }

2
啊,你更快更好。我没想到会有这种重载 xD - dvdvorle
谢谢,我也不知道有这个重载!希望它能帮助其他人。最好的问候! - teodron
2
我认为你不需要使用“ref”关键字,因为你没有改变destBitmap对象。 - Pedro77

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接