Работа с изображением на сервере.

Статус
В этой теме нельзя размещать новые ответы.

ctx79

Создатель
Регистрация
25 Авг 2006
Сообщения
31
Реакции
1
Вопрос вот в чем. Допустим на сервере лежит очень большая картинка (к примеру 10000х10000рх - карта города). На сайте выведено ее уменьшенное изображение. При клике мышем ловим координаты точки, где кликнули. Так вот вопрос - как теперь получить кусок большого изображения с заданным масштабом?
Желательно примеры, можно пинка где почитать.
P.S. В идеале еще организовать перетаскивание споказом соответствующего куска...
 
  • Заблокирован
  • #2
здесь покопайся, есть плагин..

точнее ссылку не дам - времени искать нет..

зы.. только jQuery ставить придется, но это скорее плюс - полезная библиотека..
 
так миниатюру можно при помощи таблицы разбитьи и зедлать сылками с AJAX. или воспользоватцо Мапингом на картинке но это уже отмирающий способ как ан меня.

1)простой враиант порезать на логические куски раз..
2)Когдато читал что у пхп есть возможность вырезать кусок из цельного изображения.

Пы.Сы.
Желательно разделить для начала карту на раены а потмо возможность мапинга и тд..или возможно секторы типа радиус от клика там 20 пх.
 
Когда-то была похожая задача.
Вот что получилось:
Дано:
- карта состоит из кусочков 500х500 точек
- несколько уровней зума
- при клике на миниатюру рассчитываются координаты "большой карты" и из 4 кусков 500х500 склеивается 1 и потом вырезается.
 
Тут сложность в том плане, что если программно обрабатывать изображение, то не хватит оперативки сервера если несколько процессов апача например будут этим заниматься параллельно.
 
  • Заблокирован
  • #7
Тут сложность в том плане, что если программно обрабатывать изображение, то не хватит оперативки сервера если несколько процессов апача например будут этим заниматься параллельно.
Счас буду ковырять jQuery и пытаться приделать кеширование, тогда вопрос отпадет. Действительно скрипт показынный mirvana, слегка подтормаживает.
 
Тут сложность в том плане, что если программно обрабатывать изображение, то не хватит оперативки сервера
Не хватит оперативки взять четыре изображения (500 на 500), соединить их, и выплюнуть пользователю? А если известен масштаб - то их даже и соединять не надо - так кусками и выводить.
...
Ты лучше вот так:
Сколько у тебя вариантов масштаба? Вот накопируй свою карту столько раз, сколько вариантов масштаба. Потом уменьши карты под каждый масштаб. Потом каждую карту "нашинкуй" на квадраты, например, 100 на 100 пикселей. И у тебя получиться:
/папка_с_нарезками_для_масштаба_10%/
/папка_с_нарезками_для_масштаба_20%/
...
/папка_с_нарезками_для_масштаба_100%/

Поле карты постоянное, например, 500 на 500 пикселей. Т.е. так как каждый кусок по 100 пикселей, в карте всегда будет 25 изображений. А в какую ячейку карты какое изображение выводить — расчитаешь по клику и выбранному масштабу.

p.s. Если карта большая, то в папке масштабов придется подпапки создавать, чтобы быстрее файлы прочитывались и выплевывались.
 
  • Заблокирован
  • #9
а что мешает пойти по след алгоритму:

1. при помощи js ловим размеры картинки
2. им же задаем координатную сетку с заданным шагом
3. ловим событие onclick курсора, считывая его положение над картинкой
4. вызываем, скажем php скрипт, кропирующий изображение, передавая в него координаты ячейки - x, y левого верхнего ее (ячейки) угла + шаг
5. последний выдает в поток фрагмент картинки
6. опционально. кэшируем фрагмент

имхо все..
 
вызываем, скажем php скрипт, кропирующий изображение
Чтобы обрезать, сначала надо открыть.
Т.е. пока нету в кэше каждый зашедший пользователь вешают сервак (все, конечно, от карты зависит. Какого размера).
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху