Rest server for image management usign spring boot
Servidor Rest para manipulación de imágenes en Java usando Spring boot
Git
Maven
jdk 8 o superior
-
Descargar e instalar Git
-
Descargar e instalar maven 3.5 o superior
-
Descargar e instalar jdk 1.8 o superior
-
Clonar repositorio
-
git clone httpss://github.com/jgrateron/imagepro.git
-
Compilar/empaquetar
-
cd imagepro/
-
mvn package
-
Ejecutar jar
-
java -jar target/imagepro-0.0.1-SNAPSHOT.jar
-
spring boot incluye un servidor web "Apache Tomcat" para el despliegue de la aplicación
-
Por defecto el puerto es 8443, se puede cambiar usando la variable de entorno PORT
-
export PORT=443
-
el puerto 443 requiere que la aplicación sea ejecutada con privilegios de administrador
- Resize
- Rotate
- Crop
Se puede enviar la imagen al servicio como base64 o a través de una url, la descarga.
De fácil configuración de un cluster para paralelizar tareas
https://localhost:8443/api/v1/resize
{
"width" : "100",
"height" : "100",
"typesize" : "px|%",
"stretch" : "true|false",
"b64img" : ""
"urlimg" : ""
}
El redimensionado de las imágenes se pueden hacer en base a pixel o porcentajes El parámetro stretch sirve para estirar la imagen cuando no exista el ancho o alto
Redimensionar la imagen "urlimg" a un 10% de su ancho
{
"width" : "10",
"height" : "",
"typesize" : "%",
"stretch" : "false",
"urlimg" : "httpss://upload.wikimedia.org/wikipedia/commons/b/b4/The_Sun_by_the_Atmospheric_Imaging_Assembly_of_NASA%27s_Solar_Dynamics_Observatory_-_20100819.jpg"
}
Redimensionar la imagen "urlimg" a 500 pixeles de alto
{
"width" : "",
"height" : "500",
"typesize" : "px",
"stretch" : "false",
"urlimg" : "httpss://upload.wikimedia.org/wikipedia/commons/b/b4/The_Sun_by_the_Atmospheric_Imaging_Assembly_of_NASA%27s_Solar_Dynamics_Observatory_-_20100819.jpg"
}
https://localhost:8443/api/v1/rotate
{
"angle" : "90",
"color" : "0"
"b64img" : ""
"urlimg" : ""
}
La rotación de imágenes en formato png deja los espacios en transparente si se coloca el parámetro color vacío
https://localhost:8443/api/v1/crop
{
"x" : "0",
"y" : "0",
"width" : "100",
"height" : "100",
"b64img" : ""
"urlimg" : ""
}
Al procesar la imagen el sistema devuelve un json con la información si pudo realizar la tarea,
en caso afirmativo el atributo imagen contiene el resultado en base64
{
"success" : "true|false",
"message" : "en caso de false",
"imagen" : "base64",
"formatName" : "jpeg|png"
}
Se agrega el módulo spring security con usuario "user" clave "123456"
Las variables de entorno IMG_USER y IMG_PWD para cambiar los valores por defecto.
Desde Postman o un cliente se debe agregar el tipo de seguridad "Authorization: Basic"
https://developer.mozilla.org/es/docs/Web/http/Authentication
- 2020-07-23
- Se agrega seguridad ssl/tsl
- las variables de entorno (KEYSTORE,KEYPASSWORD,KEYTYPE,KEYALIAS) permiten cambiar el almacen de certificado.
Jairo Graterón [email protected]