Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648

Перемещение большой картинки как в просмотрщиках изображений

06.04.2016, 14:49. Показов 4374. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть картинка загруженная в PictureBox, занимающий всю форму. Картинка имеет размеры гораздо больше экрана монитора. Как её пермещать (чтобы просмотреть недоступные участки изображения) зажав кнопку мыши (как в графическом редакторе).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2016, 14:49
Ответы с готовыми решениями:

Перемещение большой картинки мышкой внутри PictureBox
Всем привет. Есть Панель на которой расположен PictureBox, в него загружается картинка большого размера (например 3000*1400). У панели...

Как задать плавное перемещение картинки в PictureBox (или перемещение самого PictureBox) из точки А в точку Б по прямой?
Необходимо задать плавное перемещение по прямой линии из "А" в "Б" по нажатию "Button"

Как вырезать из большой картинки фрагмент по заданным координатам?
Прмер: карта москвы... пользователь жмет на определенную точку на карте.. АСП вычисляет координаты этой точки,вырезает из карты...

30
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
14.04.2016, 12:29
Студворк — интернет-сервис помощи студентам
Пересобрал проект с учетом выложенного выше архива. Никаких проблем. Выкладываю весь проект.
Вложения
Тип файла: rar myPBox_160414.rar (70.4 Кб, 17 просмотров)
1
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
14.04.2016, 14:35  [ТС]
ovva, попробовал Ваш вариант с картинкой средних размеров. Изображение сильно дёргается как при скроллировании, так и при перетаскивании. Прилагаю проект. Там только картинка моя, остальное всё Ваше (названия некоторых переменных изменены для лучшего восприятия). Может подскажете другой путь. Может таскать не изображение, а сам PictureBox. Как-то этож делают в графических просмотрщиках.
Вложения
Тип файла: rar DragAndScal.rar (523.6 Кб, 16 просмотров)
0
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
14.04.2016, 23:29
jkrnd,
• Какой смысл переписывать класс в код формы? Как правило, поступают наоборот, стараются инкапсулировать сущности.
• Укажите в Form1_Load PictureBox1.SizeMode = PictureBoxSizeMode.Normal (чтобы компенсировать непонятно зачем установленное в свойствах StretchImage). Здесь же Me.DoubleBuffered = True.
• В Paint закомментируйте If xPos2 > 0 Then df() и If yPos > 0 Then df().
• Событие Paint происходит многократно и имеет смысл заменить bmp.Width, bmp.Height, PictureBox1.DisplayRectangle.Width(), PictureBox1.DisplayRectangle.Height() на некоторые переменные, определяемые при загрузке формы. Хотя при компиляции оптимизатор, скорее всего сам проделает эти манипуляции, но лучше перестраховаться.
• "другой путь" не знаю. Здесь скорее вопрос в деталях. Как появится больше времени, я вернусь к этой теме.
• "Может таскать не изображение, а сам PictureBox". Выложите код и тогда можно будет обсуждать.
1
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
15.04.2016, 07:25  [ТС]
ovva, спасибо за советы, тут дело ещё в производительности машины.
Цитата Сообщение от ovva Посмотреть сообщение
Выложите код
пост #10 текущей темы, (правда там нет масштабирования)
Цитата Сообщение от ovva Посмотреть сообщение
смысл переписывать класс в код формы
отлаживать элемент управления немного сложнее, чем код формы
0
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
15.04.2016, 09:44  [ТС]
исходник к посту #10
Вложения
Тип файла: rar WindowsApplication1.rar (145.2 Кб, 12 просмотров)
0
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
17.04.2016, 14:57
jkrnd,
1. Еще один вариант (myPB.rar). Код иной, но с тем же смыслом.
2. Нашел проект (http://www.codeproject.com/Tips/889022/Image-Box). Все та же идея, но с несколько перегруженным кодом. Вы можете использовать какие-то части этого кода для своих целей. После компиляции получаете небольшую DLL (20 Кб). Прилагаю пример возможного использования этой библиотеки (usingDLLImageBox.rar).
3. На сложных и объемных растрах эффекты задержки рендеринга изображения наблюдаются в обоих проектах (хотя, на мой взгляд, и незначительные). Причина не в общей идеи, а скорее в используемых инструментах. Все-таки GDI+ не отличается быстрой графикой, и в частности, поэтому для игр обычно используют другие средства.
Вложения
Тип файла: rar myPB.rar (13.5 Кб, 19 просмотров)
Тип файла: rar usingDLLImageBox.rar (19.6 Кб, 17 просмотров)
1
Модератор
Эксперт .NET
 Аватар для Yury Komar
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
19.04.2016, 20:50
ovva, jkrnd, интересную тему вы развили, давно хотел такой пикчур сделать себе, да все руки не доходили... Но все же я склоняюсь к моему варианту с использованием перемещения самого контрола, его масштабирование и так далее, так как он поддерживает анимационные GIF изображееия... К тому же визуального отличия от вашего варианта вы не увидите, но в нем никакой работы с графикой
Осталось докрутить выход за границы и еще добавить фичу - при масштабировании колесиком увеличивать и уменьшать картинку так, чтобы точка картинки находящаяся под курсором, не улетала бог знает куда, а так и оставалась под курсором, тоесть тоже самое, что было реализовано в стандартном Windows Image Viewer...
Как доделаю - сктну сюда в тему
1
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
19.04.2016, 21:01  [ТС]
Yury Komar, Жду с нетерпением

Добавлено через 1 минуту
сейчас использую последний PictureBox от ovva - это лучшее!
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
19.04.2016, 21:24
попробую сделать аналог, но с другим принцыпо работы, по-проще
а вы их сравните
1
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
20.04.2016, 00:03
Yury Komar,
Проект http://www.codeproject.com/Tips/889022/Image-Box поддерживает GIF анимацию.
2
47 / 47 / 7
Регистрация: 26.12.2014
Сообщений: 189
20.04.2016, 04:29
Цитата Сообщение от jkrnd Посмотреть сообщение
Может подскажете другой путь.
В теории можно натянуть картинку на полигон(dx) и создать крутой редактор .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.04.2016, 04:29

Поиск и сохранение изображений от Google.Картинки и Яндекс.Картинки
Мир вам, братья по увлечению! Я на вашем форуме впервые, давно хотел влиться в какое-нибудь сообщество веб-девелоперов, т.к. сам уже...

Как сделать плавное перемещение картинки в обе стороны
DoubleAnimation da = new DoubleAnimation(0, 13, new Duration(TimeSpan.FromSeconds(1.8))); RotateTransform rt = new...

Как сформировать цикличное перемещение картинки по странице сайта?
Всем привет. Необходим скриптик, чтобы картинка перемещалась по сайту циклично слева-направо. Т. е. перемещается, к примеру, по...

Как сделать JS перемещение картинки справа налево и хаотично и повторять
Необходимо чтоб внутри формы появилась картинка справа рандомно и двигалась до конца формы слева и пропадала. + чтоб она перемещалась не...

Как сделать перемещение картинки по координатам, при нажатии на ссылку
Не как не могу найти информацию как сделать что бы стрелочка ездила по заголовкам , когда я выбираю один из них ,пример как должно быть в...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru