[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Многократное наложение изображений
MoZart.Element
Здравствуйте.

Существует такая задача:
1. Имеется изображение "im_1".
2. Произведя некоторые вычисления необходимо наложить другое изображение "im_2" на "im_1" в точке с координатами, полученными в ходе вычислений.
3. Шаг 2 повторяется многократно. При этом наложенные ранее изображения должны сохраняться, дополняясь новыми.

Я не нашёл способа это реализовать. Подскажите!



Спустя 13 минут, 47 секунд (30.06.2010 - 13:49) sergeiss написал(а):
Между промежуточными вычислениями есть временной интервал?

Если нету, то всё можно сделать в пределах одного скрипта.

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

Тебе что больше нравится? wink.gif

Спустя 9 минут, 24 секунды (30.06.2010 - 13:58) MoZart.Element написал(а):
Цитата (sergeiss @ 30.06.2010 - 10:49)

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


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

Спустя 8 минут, 3 секунды (30.06.2010 - 14:06) sergeiss написал(а):
А что тебе мешает хранить не файлы, а некие цифровые данные, а картинку создавать каждый раз заново, на основании этих данных?

Посмотри, например, на какие-нибудь счетчики посещений. Там же не хранятся картинки с разными цифрами smile.gif Хранятся только цифры, картинки же создаются заново каждый раз, когда они нужны. Максимум, что может быть стабильным - это некий фон.

Спустя 9 минут, 14 секунд (30.06.2010 - 14:15) MoZart.Element написал(а):
Цитата (sergeiss @ 30.06.2010 - 11:06)
А что тебе мешает хранить не файлы, а некие цифровые данные, а картинку создавать каждый раз заново, на основании этих данных?


Абсолютно верно.
Было 2 идеи.
1. Хранить массив данных в сессии. Но для этого её надо открывать...
И каждый раз переприсваивать массив, дополняя его несколькими значениями...

2. Осуществить всё через дополнительные БД. Но тогда придётся для каждого посетителя создавать новую БД... И как её удалить, когда он "Уйдёт" с сайта?
Можно удалить её когда он в следующий раз обратиться к этому скрипту, но всё равно мусора будет много...

Есть ещё интересные способы???

Спустя 17 часов, 51 минута, 27 секунд (1.07.2010 - 08:07) sergeiss написал(а):
Цитата (MoZart.Element @ 30.06.2010 - 15:15)
Но тогда придётся для каждого посетителя создавать новую БД...

А что это за бред такой (извиняюсь за столь откровенные слова)??? Зачем для каждого пользователя новую БД? Для него достаточно будет одной записи в таблице.

Что касается сессии - учти, что у неё ограниченный срок жизни.

Спустя 1 час, 20 минут, 15 секунд (1.07.2010 - 09:27) MoZart.Element написал(а):
Цитата (sergeiss @ 1.07.2010 - 05:07)
А что это за бред такой (извиняюсь за столь откровенные слова)??? Зачем для каждого пользователя новую БД? Для него достаточно будет одной записи в таблице.

Что касается сессии - учти, что у неё ограниченный срок жизни.

Если делать через БД, то в случае сохранения промежуточного рисунка Вы правы - достаточно одной записи. А в случае с сохранением данных придётся накапливать новые записи с координатами всё новых точек для перегенерации рисунка. Одной записью тут не обойтись...

Что значит ограниченный срок жизни? Какой он?

Спустя 30 минут, 45 секунд (1.07.2010 - 09:58) sergeiss написал(а):
Цитата (MoZart.Element @ 1.07.2010 - 10:27)
Что значит ограниченный срок жизни? Какой он?

Сессия живет максимум 24 минуты.

Спустя 1 месяц, 23 дня, 1 час, 17 минут, 34 секунды (24.08.2010 - 11:15) randewy написал(а):
Этой теме уже не один месяц, но для меня она оказалась важной. Потому обращаюсь к вам за помощью именно здесь. Помогите, пожалуйста, решить такую задачу, поскольку сам я не соображу.
Задача такая. У меня на сайте есть страничка, на которой показана карта. При нажатии мышкой на карту внизу появляются географические координаты (широта и долгота выбранной точки). Все это работает нормально.
Дальше нужно усложнить этот процесс: выбранная точка должна обозначиться на карте красной, допустим, точкой (прямоугольничком или квадратиком). Вот это-то и не получается у меня, как ни пытался (используя скрипты, взятые из сети).
Страничка сайта здесь: http://www.randewy.ru/nav/koord.php

Спустя 1 час, 13 минут, 23 секунды (24.08.2010 - 12:29) Nikitian написал(а):
randewy
Взяли бы googleAPI - там это делается на js менее 10 строчек кода.
Например создание маркера
А вот получение почти координат при клике (в одном месте поменять и будут реальные координаты).

Спустя 1 час, 48 минут, 41 секунда (24.08.2010 - 14:18) randewy написал(а):
Nikitian, спасибо за ответ и подсказку! Но, думаю, это мне не подойдет, поскольку нужно подключаться к услугам Google, то есть в какой-то мере становиться зависимым от кого-то. Хотелось бы, чтобы работа сайта проходила автономно. И посему надо бы решить задачу с помощью PHP или с помощью Java в своем скрипте...

Спустя 18 часов, 39 минут, 43 секунды (25.08.2010 - 08:57) MoZart.Element написал(а):
Цитата (randewy @ 24.08.2010 - 08:15)
При нажатии мышкой на карту внизу появляются географические координаты (широта и долгота выбранной точки). Все это работает нормально.
Дальше нужно усложнить этот процесс: выбранная точка должна обозначиться на карте красной, допустим, точкой (прямоугольничком или квадратиком).

Лично я решил этот вопрос (может и не совсем правильно) таким образом.
  • При нажатии на карту вычисляются координаты точки - широта и долгота.
  • Записываем их в сессию.
  • При обновлении рисунка считываем данные координаты из сессии и рисуем точку функцией imagesetpixel(), imagefilledrectangle() или imagefilledellipse() - что больше нравится.
  • Последним шагом удаляем эти координаты из сессии, так как дальше они нам не нужны.
Всё реализуется в 7 строчек кода рнр. Никаких дополнительных скриптов не требуется.

Один момент: чтобы это работало изображение должно строится средствами рнр.

Спустя 1 час, 29 минут, 24 секунды (25.08.2010 - 10:27) randewy написал(а):
MoZart.Element, спасибо за подсказку! Сейчас попытаюст реализовать ваш алгоритм. О результатах сообщу. Не знаю, получится ли, поскольку все-таки я не спец в этом деле.

Спустя 25 минут, 4 секунды (25.08.2010 - 10:52) randewy написал(а):
На первом этапе такая проблема: при открытии карты средствами PHP она перестает реагировать на нажатия мышки и таким образом не удается определить координаты. Как это преодолеть?

Спустя 5 часов, 35 минут, 55 секунд (25.08.2010 - 16:28) MoZart.Element написал(а):
Цитата (randewy @ 25.08.2010 - 07:52)
На первом этапе такая проблема: при открытии карты средствами PHP она перестает реагировать на нажатия мышки и таким образом не удается определить координаты. Как это преодолеть?

Да я сам не спец)))
Поскольку не знаю, как работает алгоритм по установке координат, то напишу в общих чертах:
Карта - картинка. Изначально она должна выглядеть так:
<img src="imcreate.php">

Если "получатель координат" является частью файла imcreate.php, ко вообще нет никаких проблем. Нажал -> запустился файл -> вычислил значения -> нарисовал точку -> выдал картинку в браузер.
Если "получатель координат" - отдельный алгоритм, то после его выполнения обновляешь картинку с полученными координатами (их передаём либо через сессию, либо JS).

Вот полезные ссылки:
http://www.php.su/functions/?cat=image
http://www.php.ru/forum/viewtopic.php?t=26315&highlight=

Спустя 18 часов, 7 минут, 59 секунд (26.08.2010 - 10:36) randewy написал(а):
MoZart.Element, спасибо! Ваша подсказка мне помогла. Но... Рисунок - красный квадратик - выводится на страницу с картой в левом верхнем углу. И ничто не может его изменить свои координаты (даже прямое явное указание их цифрами) и "забраться" на карту. Передаче координат на Ява и с помощью сессий я, кажется, научился. Дальше пока не получается...

Спустя 4 минуты, 13 секунд (26.08.2010 - 10:40) randewy написал(а):
MoZart.Element, спасибо! Ваша подсказка мне помогла. Красный квадратик появился на страничке с картой в левом верхнем углу. Но - увы! Ничто, даже прямое явное указание его координат цифрами, не может заставить этот квадратик "забраться" на карту. Передачу координат на Ява и сессиями я, кажется, освоил. Но дальше дело не идет...

Спустя 12 часов, 5 минут (26.08.2010 - 22:45) randewy написал(а):
Вот здесь есть отличный пример: http://xhtml.ru/2006/08/23/cursor-coordinates/
Сделал все по нему и... точечка симпатичная ставится, а координаты не вычисляются, хотя координаты точки есть. В основном варианте при нажатии на карту происходит событие click, после чего вычисление происходит. Здесь же по клику появляются координаты, но PHP-скрипт не запускается.

Спустя 15 часов, 11 минут, 22 секунды (27.08.2010 - 13:56) MoZart.Element написал(а):
Если я всё правильно понял, то надо точечку рисовать на карте. карта это рисунок.
Открываем обработчик рнр, и пишем там следующее:
<?php
session_start();
header ("content-type: image/png");
//Блок начальных присвоений - получаем извне значения координат. Здесь из сессии, можно любым способом.
$X = $_SESSION['X'];
$Y = $_SESSION['Y'];
// Создаём рисунок из карты
$url = "example.gif";
$img = imagecreatefromgif($url) or die ("Не удаётся инициализировать новый поток изображения.");
//задаём цвета
$EScolor = imagecolorallocate ($img, 188, 144, 255); // цвет точечки
$bgcolor = imagecolorallocate ($img, 255, 255, 255); // цвет фона
$textcolor = imagecolorallocate ($img, 0, 0, 0); // цвет текста
//Рисуем точечку

imagefilledellipse ($img, $X, $Y, 3, 3, $EScolor);
//Выводим текст
imagestring ($img, 1, 5, 5, "Designed by MoZart", $textcolor);
imagestring ($img, 5, 5, 15, "X = ", $textcolor);
imagestring ($img, 5, 5, 25, "Y = ", $textcolor);
imagestring ($img, 5, 15, 15, $X, $textcolor);
imagestring ($img, 5, 15, 25, $Y, $textcolor);
//Выводим изображение в браузер
imagepng ($img);
?>

Желаю удачи))))))
PS: Я, кажется уже давал ссылку на графические функции в рнр. Всё оттуда. Там много ещё интересного! Например прикреплённый файл сделан с помощью графических функций рнр.

Спустя 2 дня, 9 часов, 32 минуты, 52 секунды (29.08.2010 - 23:29) randewy написал(а):
MoZart.Element, огромное Вам спасибо! Все получилось! Прошу прощения за задержку с ответом здесь, только сейчас добрался до компьютера (гости приехали). Точка рисуется на карте, где я хочу. Завтра попробую связать со своей программой определения координат (это уж я сделать должен). Еще появлюсь здесь 30-го и 31-го, а потом меня не будет до 8 сентября. Спасибо, в общем!

Спустя 16 часов, 18 минут (30.08.2010 - 15:47) MoZart.Element написал(а):
Да пожалуйста!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.