#1 21.10.08 14:29
[php] реализация растяжений-сжатий изображений
задача: имеется картинка размером не более 500px * 500px. Ее необходимо обработать таким образом - показать лучше на примере.
http://hostel.nstu.ru/uploaded/gallery/ … 075698.jpg
Представте, исходная картика - это плоская фотографмя одного квадратика плитки. А мне наждо из него сделать такую картинку, как вы видете ее уже по ссылке - т.е. 3d искаженной, для дальнейшей подстановки в другие фотографии он лайн.
я тут вижу 2 варианта
1. Аффинные преобразования плоскостей - по сути картинка плоская, и нам просто нужно ее определенным образом растянуть, чтобы получить требуемую. Сам алгоритм нашел, но честно говоря не до конца его понял - как применить его оименно набору пикселов, а не математически заданной плоскости.
Может у кого есть уже готовая реализация сей штуки, ну или статья с применением этого механизма к фотографиям цифровым? было бы шикарно, т.к. по идее этот вариант самый быстродейственный и с минимальными потерями качества.
2. Использовать 3d движок - по сути, наш объект - это очень простой 3d объект состоящий из 16 полигонов. Наложим на его лицевую сторону картинку, и потом с помощью установок матриц вида, масштаба и перемещения рендеря объект мы получаем то что надо.
НО - тут свои проблемы. Во первых это все куда тормознее и жрет не мало памяти, потому как сам механизм достаточно сложный.Во вторых готовые 3d движки на php не поддерживают текстурирования - а без этого совсем все плохо. Да и качество у них будет явно хромать, ибо для качественного рендеринга надо много ресурсов - а у веб сервера чаще всего их не много. Да и слишком сложно тут все для решения данной задачи.
Собсвтенно вопрос - может кто поделится инфой или реализацией первого метода, ну или может кто знает быстрый 3d движок на php который поддерживает текстурирование?
p.s. на вопрос "зачем это надо делать на php и т.д. " могу сразу ответить - надо, и в офлайне это делать не пойжет, будет использоваться при добавлении объекта в базу.
Offline
#3 22.10.08 16:16
Re: [php] реализация растяжений-сжатий изображений
Offline
#4 23.10.08 00:37
Re: [php] реализация растяжений-сжатий изображений
A-Lex написал(а):
Igo написал(а):
НО - тут свои проблемы. Во первых это все куда тормознее и жрет не мало памяти, потому как сам механизм достаточно сложный.Во вторых готовые 3d движки на php не поддерживают текстурирования - а без этого совсем все плохо. Да и качество у них будет явно хромать, ибо для качественного рендеринга надо много ресурсов - а у веб сервера чаще всего их не много.
Offline
#5 23.10.08 14:17
Re: [php] реализация растяжений-сжатий изображений
Просто попробавал запустить пару примеров. Машина вытянула нормально :)
А вообще мне кажется лучше поискать заточенные под это софтины, управляемые, например, через cli
Вот например ImageMagick, из API php не очень то удобно работать, зато если написать скрипт на баше и дёрнуть его тем же exec(), то вуаля, все идёт как по маслу :)
Offline
#6 23.10.08 16:09
Re: [php] реализация растяжений-сжатий изображений
A-Lex, ну у меня просто PEAR модуль на локальной машине слабенькой модель из 9000 полигонов без тексткрирования 60 секунд рендерил - я понимаюу меня такчка слабая, но тем не менее, и памяти около 100 м схавала, а такое не на всех хостингах предоставляется.
A-Lex написал(а):
Вот например ImageMagick, из API php не очень то удобно работать, зато если написать скрипт на баше и дёрнуть его тем же exec(), то вуаля, все идёт как по маслу :)
Вариант, не спорю, причем скорее всего даже самый быстродейственный, и потому если других вариантов не найдется прийдется его применить. Просто в идеале хочется красоты: чтоб все на php было и не тормозило.
а пока что ищу
Jaguar написал(а):
есть плагины к GIMPу...
Пока без результатов, но думаю найду.. Если кто конкретные скрипты знает и где лежат - за ссылочку спасибо скажу)))
Offline
#7 23.10.08 16:23
Re: [php] реализация растяжений-сжатий изображений
Igo, я так понял, что тебе может подойти этот скрипт
Offline

