Si alguna vez has necesitado cambiar el tamaño de una imagen para un sitio web, una compresión rápida o incluso convertir un PNG a JPG, sabrás lo limitadas que pueden ser las soluciones ya preparadas, o lo llenas que están de publicidad y restricciones. Como desarrollador y creador de contenidos, decidí crear mi propia solución. API propia de redimensionamiento de imágenescon soporte para compresión, conversión de formatos y visualización en directo, todo ello dentro de mi entorno WordPress.
En este artículo, te muestro entre bastidores esta creación y cómo puedes utilizar o adaptar algo similar en tu proyecto.
Enlace API: Redimensionador de imágenes en línea
¿Por qué he creado esta API?
Necesitaba una solución ligera, funcional y personalizable para mi propio uso y también para los lectores de Criadix. Las herramientas en línea no siempre garantizan el control de calidad, ni permiten integraciones automatizadas con otros flujos de trabajo. Creando mi propia API:
- He ganado control total del cambio de tamaño
- Pude aplicar compresión personalizada
- Hice posible que conversión entre formatos (PNG ↔ JPG)
- Añadido visualización en tiempo real con en el front-end
- Y pude ofrecer todo esto a través de Plugin de WordPress
¿Cómo funciona la API?
La lógica central está en un archivo PHP que actúa como un punto final REST. Permite:
1. Cargar varias imágenes
Con validación de tipo (jpg, jpeg, png, webp, gif, bmp o tiff) y límite de tamaño.
2. Lectura de las dimensiones originales
La API obtiene la anchura y la altura de cada imagen cargada y la muestra al usuario en el panel de vista previa.
Cómo salir de deudas y recuperar su salud financiera
3. Cambio de tamaño por píxel o porcentaje
El usuario puede elegir entre fijar las dimensiones manualmente o mantener la proporción automáticamente.
4. Compresión ajustable
Con Imagick, controlo la calidad de la imagen final.
5. Conversión de formatos
Si el usuario envía PNG y opta por la salida JPG, la conversión se aplica con suavizado de fondo transparente.
6. Descargar en ZIP
Si se importa más de una imagen, todas las imágenes procesadas se comprimen en un único archivo .zip para su descarga inmediata. En caso contrario, se comprimirá el mismo nombre de imagen.
Experiencia de usuario (UX) en el front-end
Como valoro tanto el aspecto técnico como la experiencia del usuario, el front-end cumple:
- Visualización en directo con canvas
- Interfaz sencilla y limpia
- Modal para una visualización ampliada
Cargando feedback y éxito con fetch y wp_ajax
Cómo lo implementé en WordPress
Plugin personalizado
He creado un plugin para WordPress llamado Image Process API. Registra un endpoint /wp-json/image-api/v1/process y lo ofrece:
- Seguridad con nonce
- Compatibilidad con varios archivos
- Opción de utilizar GD o Imagick en función del servidor
Estructura del directorio
- /temp_uploads/ → imágenes recibidas
- /final_images/ → imágenes convertidas y comprimidas.
- /descargas/ → archivos zip ya creados
También incluye registros de errores para depurar y comprobar los permisos en el servidor local o remoto.
Próximos pasos
Como cualquier proyecto vivo, aún quiero hacerlo:
- Añadir redimensionamiento por lotes mediante URL remota
- Crear un cuadro de mandos para visualizar las estadísticas de uso
- Ofrezca un widget para integrarlo fácilmente en otros sitios web
Crear mi propia API de redimensionamiento de imágenes era algo más que un reto técnico: era una solución práctica y personalizada para mi día a día como creador y desarrollador. Y lo mejor: ahora puedo ofrecer esta herramienta en Criadix para ayudar a otros usuarios que también necesitan optimizar imágenes con más libertad y calidad.
Si quieres aprender más sobre WordPress y el desarrollo PHP, este tipo de proyecto es un gran punto de partida - y totalmente aplicable a la vida real.

