148 / 116 / 10
Регистрация: 12.09.2011
Сообщений: 785
|
||||||
1 | ||||||
Выделение участка изображения в PictureBox25.01.2015, 17:16. Показов 2976. Ответов 11
Метки нет (Все метки)
Привет всем!
Хотел бы реализовать функцию, которая бы позволяла на изображении в PictureBox менять размер и положение участка выделения (прямоугольника) с помощью мыши, то есть, например, как в Paint или любом другом графическом редакторе. На изображении стоит прямоугольник и, тягая за его края, можно было бы менять размер этого прямоугольника. Рисование самого прямоугольника делаю так:
Как можно мышь к прямоугольнику привязать, чтобы менять его размеры, подскажите, пожалуйста? Спасибо!
0
|
25.01.2015, 17:16 | |
Ответы с готовыми решениями:
11
Выделение области изображения в picturebox Работа с pictureBox (выделение части изображения) Выделение участка на странице Склеивание изображения нескольких picturebox в один picturebox |
39 / 28 / 8
Регистрация: 14.04.2012
Сообщений: 249
|
|
25.01.2015, 19:33 | 2 |
можно считывать координаты курсора. Когда он подойдёт к границы прямоугольника, произвести нужное действие.
1
|
148 / 116 / 10
Регистрация: 12.09.2011
Сообщений: 785
|
|
25.01.2015, 22:17 [ТС] | 3 |
kostrorod, это очевидно ) Просто хотел знать как именно это сделать
0
|
39 / 28 / 8
Регистрация: 14.04.2012
Сообщений: 249
|
||||||
25.01.2015, 22:41 | 4 | |||||
1
|
211 / 228 / 87
Регистрация: 21.04.2013
Сообщений: 404
|
||||||
26.01.2015, 03:23 | 5 | |||||
Сообщение было отмечено Vinemax как решение
Решение
Я бы сделал отдельный контрол.
Для перемещения c копированием написАл такой пример (код сырой):
1
|
1717 / 1204 / 228
Регистрация: 23.12.2010
Сообщений: 1,541
|
|||||||||||||||||||||||||||||||
26.01.2015, 07:46 | 6 | ||||||||||||||||||||||||||||||
Сообщение было отмечено Памирыч как решение
Решение
RubberBand.RubberBandStyle.DashedLine - стиль очерчивания (описан в классе rubberband) Последний параметр - Цвет области выделения И работа с ним при нажатии на кнопку мыши в пределах контрола, на котором рисуем область (mouse_down)
Ну а дальше с этой информацией уже обрабатывайте то, что выделяли.
3
|
148 / 116 / 10
Регистрация: 12.09.2011
Сообщений: 785
|
|
26.01.2015, 08:53 [ТС] | 7 |
Юпатов Дмитрий, спасибо большое! Буду пробовать сейчас...
0
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
18.12.2016, 04:36 | 8 |
Юпатов Дмитрий, прямоугольник выделения запаздывает за курсором мыши и сильно моргает при выделении - это неизбежно? Ведь в графических редакторах этих эфектов нет. А если попробовать вместо FillReversibleRectangle функцию API DrawFocusRect?
0
|
1717 / 1204 / 228
Регистрация: 23.12.2010
Сообщений: 1,541
|
|
18.12.2016, 11:40 | 9 |
не должен вообще то
0
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
18.12.2016, 11:56 | 10 |
Юпатов Дмитрий, в архиве Ваш вариант, пример из MSDN и вариант с использованием API. Попробуйте
Не по теме: Кстати, если подскажете как избавится от моргания изображения при старте захвата экрана (проект DrawFocusRect), буду очень признателен.
3
|
1717 / 1204 / 228
Регистрация: 23.12.2010
Сообщений: 1,541
|
|
18.12.2016, 13:39 | 11 |
Хм... вариант с API самый шикарный, конечно.
2
|
82 / 72 / 15
Регистрация: 18.01.2014
Сообщений: 349
|
|
11.04.2018, 22:24 | 12 |
А с произвольной областью, не прямоугольной (например овал) можно что-нибудь придумать?
Чтобы также можно было перетаскивать часть изображения овальной формы, растягивать и т.д. Или например System.Drawing.Drawing2D.GraphicsPath, в котором координаты вершин произвольной фигуры. Добавлено через 4 часа 5 минут Придумал алгоритм, но в одном месте застопорился. 1) Берем Path as GraphicPath, 2) у этого Path берем GetBounds 3) добавляем прямоугольник Getbounds к GraphicPath (Path.AddRectangle) 4) рисуем на отдельном новом BMP прямоугольную часть исходного изображения обрамленную Path.getbounds 5) Закрашиваем ненужные фрагменты у нового BMP, например белым цветом с помощью g.fillpath(white,Path) 6) Делаем белый цвет прозрачным 6.3) небольшая проблема с масштабом размеров между исходной картинкой и новым BMP, но она решаема 6.5) А вот здесь проблема: если в нужной части картинки тоже есть белый цвет, то он станет также прозрачным 7) в нужном месте исходной картинки рисуем этот BMP Итого: копируется не прямоугольная, а произвольная замкнутая область
0
|
11.04.2018, 22:24 | |
11.04.2018, 22:24 | |
Помогаю со студенческими работами здесь
12
Выделение участка на TImage для заполнения его объектами Как добиться качественного рисования изображения поверх изображения picturebox? Поиск участка изображения Показ определённого участка изображения Передача координат выделенного участка изображения На PictureBox сделать, чтобы при выделении участка, начальная и конечная координаты прямоугольника сохранились в переменные Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества
Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
|
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов.
. . .
|
С чего начать программировать микроконтроллеры
raxper 06.01.2025
Введение в мир микроконтроллеров
Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
|
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
|
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|