Image Storm Ć© uma API de ediĆ§Ć£o de imagens desenvolvida em Laravel 11, que permite a criaĆ§Ć£o e manipulaĆ§Ć£o de imagens de forma programĆ”tica. A API recebe um payload JSON com parĆ¢metros como dimensƵes, cor de fundo e componentes (textos, imagens em base64 ou URLs). A saĆda Ć© uma imagem PNG gerada com as especificaƧƵes fornecidas.
Siga os passos abaixo para instalar a aplicaĆ§Ć£o:
git clone https://github.com/vhratts/image-storm.git
cd image-storm
composer install
.env
:Copie o arquivo de exemplo:
cp .env.example .env
Configure as variƔveis de ambiente, como APP_KEY
e detalhes de conexĆ£o com o banco de
dados.
php artisan key:generate
php artisan serve
A aplicaĆ§Ć£o estarĆ” acessĆvel em http://localhost:8000
.
POST /api-service/image-editor
A requisiĆ§Ć£o deve ser enviada no corpo como application/json
e conter os seguintes
parĆ¢metros:
text
ou
image/png
).{
"sample": {
"width": 300,
"height": 720,
"background": "#ffffff"
},
"components": [
{
"overlay": 0,
"position": {
"x": 0,
"y": 0
},
"size": {
"width": 300,
"height": 100
},
"collors": {
"content": "#292929"
},
"content": {
"type": "text",
"content": "Texto no componente de imagem"
}
},
{
"overlay": 1,
"position": {
"x": 300,
"y": 0
},
"size": {
"width": 300,
"height": 100
},
"content": {
"type": "image/png",
"content": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
}
}
]
}
curl -X POST "http://localhost:8000/api-service/image-editor" \
-H "Content-Type: application/json" \
-d '{
"sample": {
"width": 300,
"height": 720,
"background": "#ffffff"
},
"components": [
{
"overlay": 0,
"position": {
"x": 0,
"y": 0
},
"size": {
"width": 300,
"height": 100
},
"collors": {
"content": "#292929"
},
"content": {
"type": "text",
"content": "Texto no componente de imagem"
}
},
{
"overlay": 1,
"position": {
"x": 300,
"y": 0
},
"size": {
"width": 300,
"height": 100
},
"content": {
"type": "image/png",
"content": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
}
}
]
}'
A ordem de sobreposiĆ§Ć£o dos componentes depende do valor de overlay
, onde nĆŗmeros mais altos
indicam camadas superiores. Certifique-se de fornecer URLs vƔlidos ou strings de Base64 corretamente
formatadas para que as imagens sejam renderizadas com sucesso.