Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.04.2013, 19:13
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию "Наклеить" маркеры на изображение

Есть исходное растровое изображение в большом разрешении (около 3к на 3к). Подскажите алгоритм, как грамотно организовать наклейки из "набора" маленьких картинок (маркеров) с возможностью перетаскивания и поворота(на углы кратные pi).

У меня пока намётки такие:

Код:
Image1.Picture.LoadFromFile(имя);

Marker := TBitMap.Create();
Marker.LoadFromFile(имя);
Markers[i] := Marker;
И по нажатию на кнопку Save алгоритмично просто наклеить BitMap.Peixels[i,j] на исходное изображение.

Ну и по TForm.OnClose пробежаться по массиву и вычистить память.
Ответить с цитированием
  #2  
Старый 02.04.2013, 19:48
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
на углы кратные pi
Углы, кратные Пи - это 180 градусов. На этот угол повернуть несложно. Перетаскивание - тоже понятно. Сохранение - тоже. В чем сейчас проблема?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 02.04.2013, 20:36
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Я просто думаю, такого рода наклейка - стандартное решение?
Вытаскивать картинку, и наклеивать пиксель на пиксель?

P.s И ещё, как оформить такие же точки как у всех компонентов в Design режиме?) IDE
Ответить с цитированием
  #4  
Старый 02.04.2013, 20:39
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Суть в чем. Меняются пиксели картинки. Значит их надо заменить (на место старых поставить новые). Какие еще могут быть решения, кроме как нарисовать вместо старых новые?
Как хранить - другой вопрос. Можно хранить уже измененное изображение, можно сохранить координаты накладываемых картинок и сами картинки. Во втором случае можно будет легко отменять действия.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 04.04.2013, 16:48
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ну вот сами подумайте, что будет происходить с вашей картой, если вы ее будете просто увеличивать. Если бы это векторное изображение, то просто перерисовывалась, бы видимая часть без искажений. А в случае битмапа у вас будут обязательно искажения. Добавьте к этому ваши маркеры, которые после наложения будут тоже являятся частью карты со своими искажениями и вы получите геморой в кубе. Так не проще делать сразу слоями? Нулевой слой - это ваша карта. Маркеры это 1-слой. Каждый маркер привязывается к координатам (Х,У) на карте.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 05.04.2013, 12:51
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Ураааа!! Новая зацепка. Страдалецъ, увеличивать мне её не надо. Она и так здоровая. Мне её при печать потом только уменьшать придётся.

Но с "послойным" отображением вы меня в правильное русло отправили. Пойду гуглить, но буду рад получить от вас любую ссылке по теме.

Конечная задача: дать возможность пользователю выбирать с панели картинку(маркер) перетаскивать на карту, подписывать её, и всё это потом на печать отправить (С последним проблем нет)

В распоряжении весь devexpress, (я знаю, вы в нём разбираетесь )
Ответить с цитированием
  #7  
Старый 05.04.2013, 17:41
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Не уверен, что это задача для девок. На ум не приходит ни одного комппонента из этой библиотеки, который бы вам помог. Возможно имеет смысл поискать что-то простенькое бесплатное в инете для вашей задачи.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter