«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно нарисовать на изображении, используя отдельный метод в C#?

Как я могу эффективно нарисовать на изображении, используя отдельный метод в C#?

Опубликовано в 2025-03-22
Просматривать:729

How Can I Efficiently Draw on a PictureBox Using a Separate Method in C#?

C# PictureBox Brawing: эффективные советы для использования независимых методов

]

в приложении C# Forms вы можете нарисовать пользовательскую графику на управлении PictureBox. Тем не менее, пользователи могут столкнуться с проблемами при попытке сделать это с помощью отдельного метода.

]

вопрос:

пользователь может захотеть создать метод для удобного рисования кругов на изображении Box, но обнаруживает, что метод не дает ожидаемых результатов. Метод проблемы инициализирует растровое изображение, графические объекты и кисти, используемые для рисования кругов. Однако, когда вы вызываете в обработчике событий краски из PictureBox, он не может нарисовать круг правильно.

]

Решение:

, чтобы эффективно использовать отдельный метод для рисования на PictureBox, обязательно узнайте, должна ли цель нарисовать на изображении, отображаемом PictureBox или непосредственно на самом управлении.

]

Метод 1: Нарисуйте непосредственно на контроле

]]

, чтобы нарисовать непосредственно на управлении (не влияя на изображение), используйте обработчик событий Picture Box, как показано ниже:

]
private void pictureBox2_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44));
}

В этом случае чертеж постоянный, графика связана с элементом управления, после любого изменения размера или перемещения элемента управления.

]

Метод 2: Нарисуйте в изображении

]

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

]
void drawIntoImage()
{
    using (Graphics G = Graphics.FromImage(pictureBox1.Image))
    {
        G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44));
    }
    pictureBox1.Refresh();
}

после завершения чертежа, вызовите метод обновления PictureBox, чтобы обновить дисплей. В этом случае графика постоянна для изображения и влияет на любое масштабирование или преобразование изображения.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3