6 / 6 / 2
Регистрация: 13.04.2009
Сообщений: 14

Рисование в PictureBox и сохранение рисунка

30.04.2009, 14:10. Показов 78861. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создается простой графический редактор на C#.

Проблема следующая: в PictureBox загружается рисунок из файла. Пользователь рисует в PictureBox поверх рисунка различные кривые (что-вроде "кисти" или "карандаша"). При попытке сохранить измененный рисунок сохраняется исходный, который был загружен.

Как я понимаю, проблема в том, что я рисую на самом компоненте PictureBox, а не на Image. Отсюда вопрос - как изменять Image компонента PictureBox или как сохранить то, что нарисовано прямо на компоненте?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.04.2009, 14:10
Ответы с готовыми решениями:

Рисование в Panel - Сохранение рисунка
Как реализовать сохранение нарисованного в Panel. Вроде сделал простенькую рисовалку (которая рисует эллипсами) с 3 функциями (менять...

Сохранение рисунка из picturebox в файл
Добрый день, имеется picturebox (230x230), на нем нарисован polygon (см. вложение) как сохранить этот полигон в битмап (не все...

Сохранение рисунка в БД и извлечение в PictureBox
Мне нужно делать принт скрин записывать его в базу, и потом извлекать на форму PictureBox. Я все это сделал следующим образом: делаю...

22
24 / 24 / 9
Регистрация: 18.12.2012
Сообщений: 194
27.02.2019, 12:00
Студворк — интернет-сервис помощи студентам
Ну Я бы сделал следующим образом:

1) при первом нажатии на кнопку мыши взводим флаг информирующий нас о том, что рисование началось и запоминаем изначальные х, у.
2) на движение каждое движение мыши делаем перерисовку фигуры от стартовых х,у к конечным х,у.(нужно запоминать все точки, которые были нанесены на рисунок)
3) Если отпускаем клавишу мыши, опускаем флаг рисования, а последняя нарисованная фигура больше не перерисовывается, а остается на холсте.
0
384 / 184 / 107
Регистрация: 07.01.2016
Сообщений: 496
27.02.2019, 12:02
merlo, нужно прикрутить отображение текущей рисуемой фигуры поверх битмапа, простейший пример для линии:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        /// <summary>
        /// Отобразить текущее состояние редактора
        /// </summary>
        public void Render()
        {
            // отобразить растр
            buf.Graphics.DrawImage(canvasBitmap, 0, 0);
            // отобразить буфер
            if (IsMouseDown)
            {
                buf.Graphics.DrawLine(penBuffer, MouseDownPoint, CurrentMousePosition);
            }
            buf.Render();
        }
Вложения
Тип файла: 7z ImageEditor.7z (17.3 Кб, 3 просмотров)
1
3 / 3 / 0
Регистрация: 29.07.2017
Сообщений: 33
27.02.2019, 13:11
alexus5, понятно, позже попробую, ну, а пока что я сделал говнокод))) Фигуры рисуются в методе Paint у pictureBox. Когда я опускаю мышь, рисунок с pictureBox сохраняется в bmp, а потом с bmp рисунок присваивается к pictureBox.Image. Сделал костыль, короче)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.02.2019, 13:11
Помогаю со студенческими работами здесь

Рисование в боаузере и сохранение на сервере рисунка
Как сделать похожий сервис? http://printio.ru/tees/new Где можно почитать про эти технологии?

Рисование на picturebox и сохранение в файл
Добрый день, visual basic 2008 задача: рисовать но нажатию клавиши мышки, и иметь возможность сохранить это все в файл (jpg/bmp). ...

Сохранение Рисунка из Word в отдельный файл Рисунка
Ситуация следующая. В документе Word есть рисунок, его надо преобразовать в файл Рисунок с сохранением всего качества. Как это сделать?...

Сохранения рисунка из PictureBox
Подскажите пожалуста как с помощью SaveFileDialog обеспечить сохранения рисунка который на пикчербоксе(в форматах бмп или джипег на выбор)

Перерисовка рисунка в PictureBox
1)Подскажите как в событии Пеинт вызвать перерисовку имеджа пикчербокса;


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

Новые блоги и статьи
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru