Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.12.2020
Сообщений: 36

Рисовать поверх фото в PictureBox

05.11.2022, 23:33. Показов 610. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В PictureBox есть картинка и мне нужно рисовать поверх этой картинки. Когда начинаю рисовать картинка просто пропадает.
Вот код.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
private bool isMouse = false;
        private class ArrayPoints
        {
            private int index = 0;
            private System.Drawing.Point[] points;
 
            public ArrayPoints(int size)
            {
                if(size <= 0)
                {
                    size = 2;
                }
                points = new System.Drawing.Point[size];
            }
            public void SetPoint(int x,int y)
            {
                if(index >= points.Length)
                {
                    index = 0;
                }
                points[index] = new System.Drawing.Point(x,y); 
                index++;
            }
            public void ResetPoints()
            {
                index = 0;
            }
            public int GetCountPoints()
            {
                return index;
            }
            public System.Drawing.Point[] GetPoints()
            {
                return points;
            }
        }
        private ArrayPoints arrayPoints = new ArrayPoints(2);
 
        Bitmap map = new Bitmap(100, 100);
        Graphics graphics;
 
        Pen pen = new Pen(Color.Green, 3f);
 
        private void SetSize()
        {
            Rectangle rectangle = Screen.PrimaryScreen.Bounds;
            map = new Bitmap(rectangle.Width, rectangle.Height);
            graphics = Graphics.FromImage(map);
 
            pen.StartCap = System.Drawing.Drawing2D.LineCap.Round;
            pen.EndCap = System.Drawing.Drawing2D.LineCap.Round;
        }
        private void pbImage_MouseDown(object sender, MouseEventArgs e)
        {
            isMouse = true;
        }
 
        private void pbImage_MouseUp(object sender, MouseEventArgs e)
        {
            isMouse = false;
        }
 
        private void pbImage_MouseMove(object sender, MouseEventArgs e)
        {
            
            if (!isMouse)
            {
                return;
            }
 
            arrayPoints.SetPoint(e.X,e.Y);
            if (arrayPoints.GetCountPoints() >= 2)
            {
                graphics.DrawLines(pen, arrayPoints.GetPoints());
                pbImage.Image = map;
                arrayPoints.SetPoint(e.X,e.Y);
               
            }
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2022, 23:33
Ответы с готовыми решениями:

Как рисовать поверх TextBox?
Есть массив текстбоксов расположенных вплотную друг к другу и находятся они на панеле. Как можно нарисовать что-то поверх текстбоксов,...

Как рисовать поверх елементов на Panel?
Суть в названии, я довольно много нашёл ответов, но не понимаю как этим воспользоваться, у меня динамически создается кнопка ну и какбы я...

Рисовать что-то к примеру линию, поверх других компонентов
Добрый день, начну с предыстории, я новичок в программировании и столкнулся с такой проблемой, у меня есть панели на форме, свойство ...

2
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
06.11.2022, 15:04
Цитата Сообщение от CyberLeadder12 Посмотреть сообщение
Когда начинаю рисовать картинка просто пропадает
Правильно. Вы же здесь меняете картинку на другую
C#
75
                pbImage.Image = map;
Можно попробовать создать Image их оригинальной картинки и рисовать на нем. Или рисовать в самом PictureBox используя его метод CreateGraphics.
0
0 / 0 / 0
Регистрация: 21.12.2020
Сообщений: 36
12.11.2022, 17:06  [ТС]
не особо понял что вы имеете ввиду, я новичек в этой теме
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2022, 17:06
Помогаю со студенческими работами здесь

Как рисовать мышью на picturebox
Помогите составить код, как рисовать мышью на picturebox.

Рисовать поверх битмапа
Здравствуейте. Имеется картинка которая хранится в Битмапе, необходимо пририсовать к этой картинке матрицу чисел, примерно следующего...

Рисовать точки поверх видео. Microsoft.DirectX.AudioVideoPlayback
Всем здравствуйте! Подскажите пожалуйста каким образом можно ставить точки поверх видео? Для управления видео использую...

Как поставить фото поверх другого фото?
Всем привет, делаю редактор персонажа( тупо переключение фотки на фотку) и получилось так, что нужно слой штанов поставить под слой тела, а...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru