Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2016, 11:36   #1
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию Какой оптимальный способ сделать картинку произвольнокликабельной?

Здравствуйте!
У меня вот такой вопрос: есть картинка. Например, такая. Надо сделать так, чтоб можно было кликнуть на произвольные её фрагменты.
В моей голове существуют две реализации кликабельности по картинкам:
Первая - это по кликанью на картинке определять координату и пускать на обработку в зависимости от того, внутрь какой области она входит. Но это либо нужно выводить прямоугольные области, либо задолбаешься их описывать.
Вторая - создавать рисунок-дубликат, в которым определённым цветом закрашивать определённые области, при кликаньи на исходную картинку "проецировать" координату на дубликат и по цвету определять область. Здесь минус в том, что если это не bmp, то при сжатии цвета искажаются, а если bmp, то при нескольких приличного размера картинках получается очень серьёзная добавка к "весу" программы.
Может, кто-то знает что-то оптимальное, чтоб и области можно было делать произвольными, и в весе сильно не прибавляло?
Ship_1 вне форума Ответить с цитированием
Старый 01.03.2016, 12:10   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
что если это не bmp, то при сжатии цвета искажаются,
искажения цветов будут при наличии в картине огромного множества цветов (плавные и не очень) переходы одного в другой.
у вас же монотонные (одноцветные) участки и МАЛО цветов.
Цитата:
в которым определённым цветом закрашивать определённые области
монотонную картинку (Bmp) можно сжать любым архиватором.
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 01.03.2016, 12:31   #3
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

а чего только bmp?
вспомогательная картинка не фото, а довольно большие области одного цвета, для такого придумали png, если областей меньше 256 gif тоже отлично сработает.
f.hump вне форума Ответить с цитированием
Старый 01.03.2016, 14:25   #4
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Попробую с другими форматами...
Ship_1 вне форума Ответить с цитированием
Старый 01.03.2016, 22:01   #5
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

А я бы отображал картинку в стандартном браузере. В нем бы заранее сделал карту изображения на HTML при нажатие на которые переходило на определенные ссылки.
А вот в событие браузера при переходе по ссылки отлавливал какая именно ссылка нажата и выполнял нужные действия.
Довольно муторно в реализации, но зато достаточно потом легко использовать.
koljsch вне форума Ответить с цитированием
Старый 13.12.2016, 18:20   #6
GreyScall
Пользователь
 
Аватар для GreyScall
 
Регистрация: 01.01.2011
Сообщений: 29
Лампочка

Цитата:
Сообщение от Ship_1 Посмотреть сообщение
Первая - это по кликанью на картинке определять координату и пускать на обработку в зависимости от того, внутрь какой области она входит. Но это либо нужно выводить прямоугольные области, либо задолбаешься их описывать.
Это делается именно так. А причём тут "выводить прямоугольные области"? Попадание точки в многоугольник/полигон. Гугл знает.

А в HTML такое называется <map>+<area>. Правда уже много много лет не видел чтоб это кто-нибудь использовал.
Regards, GreyScall.
GreyScall вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимальный способ организации передвижения в онлайн играх lawliet93 Gamedev - cоздание игр: Unity, OpenGL, DirectX 20 08.03.2014 15:20
Оптимальный способ отправки файлов harunk Общие вопросы Delphi 2 04.09.2012 09:50
Какой способ чтения из БД быстрее? Desha БД в Delphi 1 21.11.2010 20:28
Оптимальный способ искать слова в текстовой (txt) базе. Alex Cones Общие вопросы Delphi 36 02.10.2009 17:18
Какой оптимальный способ в Delphi для перевода 10 системы счисления в 16с.с SERGOO Общие вопросы Delphi 5 25.05.2007 19:02