Страница 1 из 3

Прокси сервер для обработки тайлов

СообщениеДобавлено: 06 апр 2013, 01:41
T_Im
Написал несложный прокси сервер на Перле для обработки Perl-модулем ImageMagick-а качаемых тайлов.
Что умеет делать:
1) Удалять логотип (см. тут)
2) Корректировать поканально уровни RGB
3) Наводить резкость Unsharp Mask
4) Есть возможность проводить потенциально любую(!) цветокоррекцию с помощью обработанного по выбранному алгоритму специальному файлу с "эталонной" таблицей цветов (подробнее рекомендую посмотреть тут http://www.quelsolaar.com/technology/clut.html, вообще интересная тема на предмет реализовать в SAS)

Примеры использования:
качаем часть "плохого" снимка, склеиваем, отправляем в Фотошоп/Гимп/...
а) Выставить уровни и гамму поканально по интересующему ландшафту, записываем значения черной, белой точек и гаммы для каждого канала в !tile_proxy.ini.
б) Поместив на склееный снимок !hald.tif можно провести любые операции с цветом (кривые, каналы, слои, перевод и коррекция в CMYK/LAB; все операции должны быть индивидуальными - не зависеть от цветового окружения), сохранить измененный !hald_edited.tif, указать его в !tile_proxy.ini.

Глюки: при интенсивном скачивании (например, в режиме просмотра) иногда SAS перестает качать через прокси (счетчик тайлов бежит, но ничего реально не скачивается). Лечится перезапуском SAS.

Полный комплект (exe файл, исходный код, файл конфигурации, пример маски и альфаканала для убирания логотипа, пример haldCLUT файла и его редактированной версии)
http://zalil.ru/34415311

Чтобы собранный exe файл работал, необходимо установить ImageMagick (выбрать версию Win32 dynamic at 8 bits-per-pixel, на текущий момент последняя версия)

Re: Прокси сервер для обработки тайлов

СообщениеДобавлено: 06 апр 2013, 20:23
Papazol
Вопрос: при использовании данного сервера как будет вести себя программа в случае указания "заменять существующие тайлы только при их отличии"?

Re: Прокси сервер для обработки тайлов

СообщениеДобавлено: 06 апр 2013, 23:54
T_Im
Смотря какой алгоритм у "заменять существующие тайлы только при их отличии". Если сверяется содержание тайла - то будет замена. Если берется размер или дата последней модификации из http хедера - то они вроде бы должны передаваться без изменений (замены не будет). Если сверяется физический размер тайла - то тут зависит от опций (например, при удалении логотипа размер, как ни странно, не изменяется; наведение резкости может увеличить тайл).

В любом случае, не вижу смысла качать в таком режиме через прокси: что в некоторых случаях SAS почему то пропускает пришедшие через прокси тайлы (при повторной скачке они скачиваются) - поэтому, во избежания мозаики лучше все делать на чистом кеше.

Re: Прокси сервер для обработки тайлов

СообщениеДобавлено: 07 апр 2013, 12:12
Draude
Че то не работает. Давайте разбираться
1.стащил по ссылке ImageMagick (ImageMagick-6.8.4-7-Q16-x86-dll.exe Win32 dynamic at 16 bits-per-pixel) .
2. установил
скрытый текст: показать
ИзображениеИзображение

3. нашел рабочий прокси, изменил настройки SAS
скрытый текст: показать
Изображение

4. соответственно задачи подправил !tile_proxy.ini :
скрытый текст: показать
раз Изображение

5. запустил !tile_proxy
скрытый текст: показать
Изображение

ошибок нет, но SAS качает тайлы без коррекции, изменение порядка запуска SAS и !tile_proxy безрезультатно

6. подправил !tile_proxy.ini в части Host и параметров коррекции, запустил:
два
скрытый текст: показать
Изображение

ошибок нет, но SAS качает тайлы снова без коррекции, изменение порядка запуска SAS и !tile_proxy безрезультатно

7. сменил картосервис , взял Кадастр Ua, поправил !tile_proxy.ini, а именно : host=212.26.144.110 а из коррекции оставил только delogo=1

8. в независимости от порядка запуска !tile_proxy имеем ошибку :
скрытый текст: показать
Изображение

соответственно и для кадастра скачанные тайлы без изменений, где косяк?

Re: Прокси сервер для обработки тайлов

СообщениеДобавлено: 07 апр 2013, 12:27
Draude
Проблема наверное в ImageMagick , при открытии отдельного тайла ругается
скрытый текст: показать
Изображение

хотя фотографии открывает нормально

Re: Прокси сервер для обработки тайлов

СообщениеДобавлено: 07 апр 2013, 12:34
vasketsov
Draude писал(а):Проблема наверное в ImageMagick

Может установить IM в perl стандартным способом через ppm?
Автор, зачем установка отдельного целого IM-ка нужна? Через ppm не прокатит?

Re: Прокси сервер для обработки тайлов

СообщениеДобавлено: 07 апр 2013, 13:23
Draude
блииин, IM ругается на кирилицу в названиях файла и именах директорий

Re: Прокси сервер для обработки тайлов

СообщениеДобавлено: 07 апр 2013, 13:30
T_Im
2Draude
В настройках SAS нужно указать localhost:номер порта из инишника.
Прокси поднимается на локальной машине, типа проксомитрона. Никакие внешние рабочие прокси не нужны.

Попробуйте переустановить Image Magick на 8 битную версию (возможно это критично, поскольку у меня все работало с ней).

vasketsov писал(а):Может установить IM в perl стандартным способом через ppm? Автор, зачем установка отдельного целого IM-ка нужна? Через ppm не прокатит?

Дело в том, что устанавливаеемый через ppm модуль все равно использует стандартную установку IM (его папка обязательно должна быть прописана в PATH винды) - используются его библиотеки.
Я пытался выделить необходимые библиотеки, чтобы они лежали рядом с ссобранным exe файлом и не требовали установленного IM, но там какая то хитрая иерархическая структура: часть вещей работает, но как только требуется преобразование tiff>jpeg - все вылетает (tiff библиотеку кидал и в корень и в соответствующую подпапку - безрезультатно). Если кто нибудь разберется как это сделать - буду благодарен.

Re: Прокси сервер для обработки тайлов

СообщениеДобавлено: 07 апр 2013, 14:01
Draude
Скачал 8бит static , нет одной библиотеки, снес скачал 8бит dynamic ( по идеи должно быстрее работать)
вынес папку !perlproxy на корневой, все запускается без ругани, но неработает
скрытый текст: показать
Изображение

буду пробывать "переселять" SAS по пути без кирилицы

Re: Прокси сервер для обработки тайлов

СообщениеДобавлено: 07 апр 2013, 14:05
Draude
T_Im писал(а):2Draude
В настройках SAS нужно указать localhost:номер порта из инишника.
Прокси поднимается на локальной машине, типа проксомитрона. Никакие внешние рабочие прокси не нужны.
...

А наоборот в инишник номер порта из SAS как у меня нельзя указать?
скрытый текст: показать
Изображение