Как создать глубокую копию растрового изображения

Я имею дело с растровыми изображениями в своем приложении, и для некоторых целей мне нужно создать глубокую копию растрового изображения. Есть ли элегантный способ, как это сделать?

Я попробовал

Bitmap deepCopy = original.Clone();

, ну, очевидно, это создает не глубокую копию, а мелкую. Я имею дело с растровыми изображениями в моем приложении, и для некоторых целей мне нужно создать глубокую копию растрового изображения. Есть ли элегантный способ, как это сделать? Я пробовал Bitmap deepCopy = original.Clone (); , ну ...

Я имею дело с растровыми изображениями в своем приложении, и для некоторых целей мне нужно создать глубокую копию растрового изображения. Есть ли элегантный способ, как это сделать?

Я попробовал

Bitmap deepCopy = original.Clone();

, ну, очевидно, это создает не глубокую копию, а мелкую. Я имею дело с растровыми изображениями в моем приложении, и для некоторых целей мне нужно создать глубокую копию растрового изображения. Есть ли элегантный способ, как это сделать? Я пробовал Bitmap deepCopy = original.Clone (); , ну ...

Я имею дело с растровыми изображениями в своем приложении, и для некоторых целей мне нужно создать глубокую копию растрового изображения. Есть ли элегантный способ, как это сделать?

Я попробовал

Bitmap deepCopy = original.Clone();

, ну, очевидно, это создает не глубокую копию, а мелкую. Моя следующая попытка заключалась в создании нового Bitmap

Bitmap deepCopy = new Bitmap(original);

К сожалению, этот конструктор Bitmap (Изображение), а не Bitmap (Bitmap), и Bitmap (Image) преобразует мой красивый 8bppIndexed Pixelformat в другой.

Другой попыткой было использовать of a MemoryStream

public static Bitmap CreateBitmapDeepCopy(Bitmap source)
{
    Bitmap result;
    using (MemoryStream stream = new MemoryStream())
    {
        source.Save(stream, ImageFormat.Bmp);
        stream.Seek(0, SeekOrigin.Begin);
        result = new Bitmap(stream);
    }
    return result;
}

Ну, это тоже не работает, так как MemoryStream нужно открывать в течение всего срока службы Bitmap.

Итак, я подвел итоги всех своих мертвецов, и мне очень хотелось бы увидеть красивый элегантный способ создания глубокой копии Bitmap. Спасибо за это :)

20
задан Biggles 4 May 2011 в 11:45
поделиться