148 / 116 / 10
Регистрация: 12.09.2011
Сообщений: 785
|
||||||
1 | ||||||
Выделение участка изображения в PictureBox25.01.2015, 17:16. Показов 2973. Ответов 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 сделать, чтобы при выделении участка, начальная и конечная координаты прямоугольника сохранились в переменные Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Обновление сайта 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
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|