Widget Insertable

Añade conversión de imágenes a tu sitio web con una sola etiqueta de script.

Inicio rápido

Añade esta etiqueta de script en cualquier parte de tu HTML. El widget se renderiza inmediatamente después de la etiqueta:

<script src="https://koalapic.com/static/widget/koalapic-widget.js"
        data-koalapic-widget
        data-mode="all"
        data-theme="auto"></script>

¡Eso es todo! El widget crea su propio contenedor y empieza a funcionar.

Opciones de configuración

Configura el widget mediante atributos data-* en la etiqueta de script u opciones pasadas a KoalaPic.init():

Opción Atributo de datos Predeterminado Descripción
mode data-mode "all" Modo del widget: convert, compress, resize o all
theme data-theme "auto" Tema de color: light, dark o auto (sigue el sistema)
accent_color data-accent-color "#3b82f6" Color de acento principal (hex). Ejemplo: #8b5cf6
allowed_formats data-allowed-formats (all) Formatos de salida separados por comas: avif, bmp, gif, heic, ico, jpg, pdf, png, svg, tiff, webp
max_file_size data-max-file-size 50 Tamaño máximo de subida en MB (1–50)
callback_url data-callback-url (none) URL a la que enviar (POST) los resultados de la conversión al finalizar
hide_branding data-hide-branding false Hide "Powered by KoalaPic" footer
api_key data-api-key (none) Clave de API para solicitudes autenticadas con límites de frecuencia más altos
width data-width "100%" Ancho del iframe del widget (cualquier valor CSS)
height data-height "500px" Alto del iframe del widget (se ajusta automáticamente mediante eventos de redimensionado)
lang data-lang (auto) Código de idioma (p. ej. fr, de, ar). Se detecta automáticamente de la página o el navegador si se omite.

Todas las opciones admiten tanto snake_case como camelCase en la API de JavaScript (p. ej. accent_color o accentColor).

API de JavaScript

Para un control total, usa KoalaPic.init() para crear widgets mediante programación:

<div id="converter"></div>
<script src="https://koalapic.com/static/widget/koalapic-widget.js"></script>
<script>
  var iframe = KoalaPic.init('#converter', {
    mode: 'convert',
    theme: 'dark',
    accentColor: '#8b5cf6',
    allowedFormats: ['jpg', 'png', 'webp'],
    maxFileSize: 25,
    apiKey: 'kp_your_key_here'
  });
</script>

Referencia de la API

Método Descripción
KoalaPic.init(selector, config) Crea un widget dentro de un elemento contenedor. Devuelve el elemento iframe. Acepta una cadena de selector CSS o un elemento DOM.
KoalaPic.on(event, callback) Registra un listener de eventos. Eventos
KoalaPic.version Cadena con la versión de la librería.

Gestión de eventos

Escucha eventos del ciclo de vida de la conversión usando KoalaPic.on():

KoalaPic.on('conversion_completed', function(result) {
  console.log('Conversion ID:', result.id);
  console.log('Download token:', result.download_token);
  console.log('Format:', result.output_format);
  console.log('File size:', result.file_size);
});

KoalaPic.on('conversion_started', function(data) {
  console.log('Conversion started in mode:', data.mode);
});

KoalaPic.on('conversion_failed', function(data) {
  console.error('Conversion failed:', data.error);
});

Tipos de eventos

Evento Carga útil Descripción
conversion_started { mode } Conversión enviada a la API
conversion_completed { id, download_token, output_format, file_size } La conversión finalizó correctamente
conversion_failed { error } La conversión o la solicitud a la API ha fallado

También puedes escuchar directamente los eventos postMessage sin procesar:

window.addEventListener('message', function(event) {
  if (event.data.type === 'koalapic:conversion_complete') {
    console.log(event.data.payload);
  }
});

URL de retorno

Establece callback_url para enviar automáticamente (POST) los resultados de la conversión a tu servidor:

<script src="https://koalapic.com/static/widget/koalapic-widget.js"
        data-koalapic-widget
        data-callback-url="https://yoursite.com/api/conversion-hook"></script>

Tu endpoint recibe un POST en JSON con el resultado de la conversión:

{
  "id": "abc123",
  "download_token": "token_xyz",
  "output_format": "webp",
  "file_size": 45210
}

Estilo y personalización

El widget se renderiza dentro de un iframe, por lo que no entrará en conflicto con los estilos de tu página. Puedes personalizar el contenedor:

<!-- Fixed-width centered widget -->
<div id="widget" style="max-width: 600px; margin: 0 auto;"></div>
<script src="https://koalapic.com/static/widget/koalapic-widget.js"></script>
<script>
  KoalaPic.init('#widget', {
    width: '100%',
    height: '500px',
    accentColor: '#e11d48',
    theme: 'dark'
  });
</script>

El iframe tiene border-radius: 8px de forma predeterminada. Anúlalo en el elemento iframe devuelto:

var iframe = KoalaPic.init('#widget', { mode: 'compress' });
iframe.style.borderRadius = '16px';
iframe.style.boxShadow = '0 4px 24px rgba(0,0,0,0.1)';

Límite de frecuencia

Para uso en producción, recomendamos pasar una clave de API mediante el atributo data-api-key. Las solicitudes anónimas están limitadas a 10 conversiones por minuto. Las solicitudes autenticadas obtienen 30 por minuto.

Obtén tu clave de API gratuita en https://koalapic.com/dashboard/keys/

Ejemplos

Widget solo de compresión

<script src="https://koalapic.com/static/widget/koalapic-widget.js"
        data-koalapic-widget
        data-mode="compress"
        data-theme="light"
        data-accent-color="#10b981"></script>

Redimensionado con formatos limitados

<script src="https://koalapic.com/static/widget/koalapic-widget.js"
        data-koalapic-widget
        data-mode="resize"
        data-allowed-formats="jpg,png,webp"
        data-max-file-size="10"></script>

Varios widgets en una página

<div id="converter-1"></div>
<div id="converter-2"></div>
<script src="https://koalapic.com/static/widget/koalapic-widget.js"></script>
<script>
  KoalaPic.init('#converter-1', { mode: 'convert' });
  KoalaPic.init('#converter-2', { mode: 'compress' });
</script>

Vista previa en vivo

Así se ve el widget en acción:

Enviar Comentarios

¡Gracias! Te responderemos pronto.

Instalar KoalaPic

Agrégalo a tu pantalla de inicio para acceso rápido

Preferencias de Cookies y Almacenamiento

Usamos cookies y almacenamiento local para mejorar tu experiencia. El almacenamiento esencial siempre está activo para el funcionamiento básico. Más información

Esencial

Protección CSRF, modo oscuro, seguimiento de errores. Siempre activo.

Funcional

Presets de conversión, preferencias de interfaz, estado de instalación de la PWA.

Análisis

Estadísticas de uso anónimas para mejorar el servicio.