Нужен специалист хорошо знающий PHP ImageMagic или GDLib
Нужно сделать небольшую PHP библиотеку/скрипт которая умеет делать следующее.
На входе получает в виде
$_REQUEST['image'] =
Вариант 1) base64 png или jpeg изображение
Вариант 2) url изображения + параметры
Вариант 3) путь к изображению на хостинге
Должен по виду входных параметров сам определять откуда брать изображение
+ параметры
$_REQUEST['background'] задается цвет фона в ввидe rgba() важно, что rgba(xx,xx,xx,0) = rgba(yy,yy,yy,0) хотя с точки зрения GD это не так
1) Предполагается что изображение выглядит примерно вот таким образом:
Его надо нарезать на прямоугольные элементы.
Важно учитывать вот такие варианты:
Т.е. такое изображение надо нарезать на два отдельных.
Если изображения "разорваны" фоновым цветом их надо делать как отдельные, если перекрываются вот так
- то это одно изображение
После нарезки на выходе должны получаться следующие данные:
Вывод регулируется параметрами (основное сохраняются изображения или возвращаются в base64
[
{
image : url/to/image1, <- изображение сохраняется
left: положение относительно левого верхнего угла исходного
top:
width:
height:
},
{
image: fwpoefwpjvlkvdfvwe <- если изображение encode,
left: положение относительно левого верхнего угла исходного
top:
width:
height:
}
]
2) Для каждого из этих нарезанных изображений необходимо определять является ли оно одноцветным, или с одноцветной обводкой т.е. вот таким:
ну или соответственно без обводки, но прямоугольным и одноцветным.
Для таких изображений необходимо возвращать json вот такого вида:
ну т.е. как CSS
{
left:
top:
width:
height:
background-color:
border-color:
}
Равномерность цвета... также необходимо предусмотреть возможность задания параметра неравномерности в %... т.е. допустим белый может быть не 255,255,255 а с некоторыми вариациями в заданных пределах
3) Фон изображения задается как отдельная запись в виде
{
left: 0
top: 0
width:
height:
background-color:
border-color:
}
В отношении производительности придется попиксельно анализировать довольно большие изображения, чтобы скрипт не умирал по timeout пользуйтесь масштабированием, анализом по частям, итераторами и т.п. т.е. это не консольный скрипт надо чтобы его можно было запустить из обычного браузера предел timeout 10 сек.
Все алгоритмы оформить в виде библиотеки с комментариями или понятными названиями функций.
Это на самом деле начало большого проекта, если все получится продолжим сотрудничество.