Как скопировать значение System.Drawing.Image?

2

Я пытаюсь скопировать значение изображения, чтобы нарисовать его, а во второй ничьей проигнорировать последнюю и начать поверх сохраненного значения Image. То есть:.

Image with 4 rectangle (ImageA)
-> draw a circle
return to ImageA
-> draw a rectangle
now there are 5 rectangles

Я не знаю, является ли это оптимальным способом рисования тоже?

  • 0
    Не могли бы вы предоставить немного больше информации о ваших намерениях? Вы пытаетесь создать простую структуру отмены / повтора для редактирования изображений или что-то более конкретное?
  • 0
    Благодарю. Я пытаюсь нарисовать новые фигуры на уже нарисованном растровом изображении. Так что я не хочу перерисовывать свои вещи. Просто добавьте сверху, но только 1 новую форму.
Теги:
image
gdi+

2 ответа

4

Я согласен с Блинди. Создайте новый объект Image и нарисуйте его, сохранив исходное изображение.

Bitmap myBitmap = new Bitmap("C:\\<path");
Image myImage = (Image)myBitmap.Clone();

Это создаст новый объект Image, чтобы вы могли сделать свой рисунок, сохраняя при этом загруженное исходное изображение.

  • 0
    Спасибо, но у меня есть только хранилище изображений, как в System.Drawing.Image в памяти. Могу ли я просто использовать это, чтобы перейти к новому значению изображения?
  • 0
    Извините, я думал, вы загружаете изображение как растровое изображение. Да, конечно, вы можете делать то, что вы после. Допустим, вы начинаете с Image imageA и хотите скопировать это изображение в новый объект, код остается таким же, как указано выше, но без преобразования. Image myImage = imageA.Clone ();
0

Вы можете создать новый Bitmap и поместить на него объект Graphics, затем нарисовать ImageA поверх временного растрового изображения и нарисовать на нем круг, а когда вы закончите, разместите временную растровую карту и продолжайте рисовать на ImageA.

  • 0
    Вы имеете в виду Graphics.FromImage?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню