C # копировать вставить область изображения в другое изображение - PullRequest
16 голосов
/ 08 марта 2012

Я пытаюсь написать служебный класс, который разрешает автоматическое изменение размеров изображений, которые являются плитками. Допустим, есть srcBitmap, из которого я копирую область, заданную Rectangle srcRegion. Затем я хочу вставить (в пиксельной информации) эту область в другое изображение с именем Bitmap destBitmap, в целевой области Rectangle destRegion. Я знаю, как получить область из источника и поместить ее в объект Bitmap, но я пока не смог найти, как на самом деле вставить объект Bitmap в определенную область внутри другого более крупного объекта Bitmap.

Есть ли быстрый способ сделать это? (без 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);
    }

1 Ответ

28 голосов
/ 08 марта 2012

Используйте это:

    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);                
        }
    }
...