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

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

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2009, 02:27   #1
TDrive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 95
По умолчанию показ части изображения

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

пробовал на пхп сделать с помощью
imagecopyresized() но она слишком долго работает, imagecopyresampled() ещё дольше
а при размере изображения в 50+Mb вообще перестают работать.
может перл больше подойдёт для такого? или лучше самому написать всю функцию вырезания изображения? и если писать то на чём лучше перл или пхп какой быстрее работает?
TDrive вне форума Ответить с цитированием
Старый 22.07.2009, 11:47   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Выхода у Вас практически нет...
1)Если php то только gd - очень быстрая и лёгкая библиотека, если в gd всё плохо то врядли где-то будет намного лучше.
2)50mb! - Вы наверное не работали с графикой. Изображение для обработки надо поместить в оперативную память, причем несжатое изображение, и оно не влезет в оперативку... Если ваше изображение не в .bmp формате переведите его в этот формат и увидите сколько оно будет занимать оперативки минимум (тк и bmp может быть сжатым).

Сейчас я работаю с высоконагруженными системами и советую разбить карту на части заранее, чтобы система обращалась к статике.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 22.07.2009, 15:17   #3
TDrive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 95
По умолчанию

чтобы всё работало как задумано мне надо или придумать как быстро обрабатывать изображение или разрезать всё изображение на клетки 36х36
изображение само примерно 10000 на 10000 пикселей
я не работал раньше с графикой но думаю gd тормозит из за того что сначала переводит изображени из png/gif/jpeg в бмп потом вырезает кусок а потом ещё и вычисляет нужный масштаб.
Я хочу попробовать взять bmp картинку и просто прочитать из неё нужные байты а потом отправить их в браузер.
щас пойду думать как это написать.
может кто что нибудь подсказать?
TDrive вне форума Ответить с цитированием
Старый 22.07.2009, 16:28   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

чето изначально неверный подход.....предлагаю следующий алгоритм:
1. ваше изображение огромное в цикле по x и y разбиваем на ваши квадраты (отрабатывает 1 раз... потом не используется)
2. данные квадраты сохранять файлами с именами например map2_4.gif
(где 2 и 4 - координаты данного квадрата)
3. пишем скрипт который принимая значения x,y показывает данный файл
ADSoft вне форума Ответить с цитированием
Старый 22.07.2009, 17:36   #5
TDrive
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 95
По умолчанию

о точно программой разбить всё изображение на квадраты а потом их использовать.
спасибо за совет.
TDrive вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Показ части изображения Alex Cones Мультимедиа в Delphi 3 12.06.2009 22:15
Показ всех имен файлов в каталоге[Delphi] sergey31 Помощь студентам 2 27.07.2008 16:43
Чтение изображения из базы данных, Вместо изображения - "System.Byte[]" ruelCrow Общие вопросы .NET 3 10.07.2008 23:29
Показ картинок, как реализовать. Zeraim Мультимедиа в Delphi 18 21.05.2008 09:29
Выделение части изображения Luboff Помощь студентам 1 26.11.2007 08:07