{"id":1895,"date":"2025-07-30T06:17:28","date_gmt":"2025-07-30T06:17:28","guid":{"rendered":"https:\/\/polisecuador.org\/?page_id=1895"},"modified":"2025-07-30T08:43:01","modified_gmt":"2025-07-30T08:43:01","slug":"img-entrevista","status":"publish","type":"page","link":"https:\/\/polisecuador.org\/en\/plog\/img-entrevista\/","title":{"rendered":"Img Entrevista"},"content":{"rendered":"<p>[et_pb_section fb_built=\u00bb1&#8243; _builder_version=\u00bb4.27.4&#8243; _module_preset=\u00bbdefault\u00bb da_disable_devices=\u00bboff|off|off\u00bb global_colors_info=\u00bb{}\u00bb da_is_popup=\u00bboff\u00bb da_exit_intent=\u00bboff\u00bb da_has_close=\u00bbon\u00bb da_alt_close=\u00bboff\u00bb da_dark_close=\u00bboff\u00bb da_not_modal=\u00bbon\u00bb da_is_singular=\u00bboff\u00bb da_with_loader=\u00bboff\u00bb da_has_shadow=\u00bbon\u00bb][et_pb_row _builder_version=\u00bb4.27.4&#8243; _module_preset=\u00bbdefault\u00bb global_colors_info=\u00bb{}\u00bb][et_pb_column type=\u00bb4_4&#8243; _builder_version=\u00bb4.27.4&#8243; _module_preset=\u00bbdefault\u00bb global_colors_info=\u00bb{}\u00bb][et_pb_code _builder_version=\u00bb4.27.4&#8243; _module_preset=\u00bbdefault\u00bb hover_enabled=\u00bb0&#8243; global_colors_info=\u00bb{}\u00bb sticky_enabled=\u00bb0&#8243;]<script src=\"https:\/\/cdn.tailwindcss.com\"><\/script><!-- [et_pb_line_break_holder] --><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"><!-- [et_pb_line_break_holder] --><link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin><!-- [et_pb_line_break_holder] --><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Merriweather:wght@400;700&#038;family=Montserrat:wght@400;600&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Estilos CSS espec\u00edficos para el componente --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->    \/* Aseguramos que las fuentes base no entren en conflicto con otros estilos *\/<!-- [et_pb_line_break_holder] -->    .interview-combined-gen-container { \/* Prefijo \u00fanico para el generador combinado *\/<!-- [et_pb_line_break_holder] -->        font-family: 'Montserrat', sans-serif;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .interview-combined-gen-container .font-serif {<!-- [et_pb_line_break_holder] -->        font-family: 'Merriweather', serif;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .interview-combined-gen-container .font-sans {<!-- [et_pb_line_break_holder] -->        font-family: 'Montserrat', sans-serif;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    \/* Clase para el nuevo color de fondo del bot\u00f3n *\/<!-- [et_pb_line_break_holder] -->    .bg-custom-red {<!-- [et_pb_line_break_holder] -->        background-color: #C11731;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .hover\\:bg-custom-red-dark:hover {<!-- [et_pb_line_break_holder] -->        background-color: #a5152a; \/* Un tono ligeramente m\u00e1s oscuro para el efecto hover *\/<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- ESTRUCTURA HTML DEL GENERADOR --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"interview-combined-gen-container w-full max-w-5xl mx-auto bg-white rounded-xl shadow-2xl overflow-hidden flex flex-col lg:flex-row\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Panel de Controles --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"w-full lg:w-1\/3 p-6 md:p-8 bg-gray-50 border-r border-gray-200\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h1 class=\"text-2xl font-bold text-gray-800 font-serif mb-1\">Crea tu Imagen de Entrevista<\/h1>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"text-gray-500 mb-6\">Selecciona el formato y rellena los campos para generar tu imagen.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"space-y-5\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div><!-- [et_pb_line_break_holder] -->                <label for=\"interview-combined-gen-formatSelect\" class=\"block text-sm font-semibold text-gray-700 mb-1\">Seleccionar Formato<\/label><!-- [et_pb_line_break_holder] -->                <select id=\"interview-combined-gen-formatSelect\" class=\"w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-[#C11731] focus:border-[#C11731] transition\"><!-- [et_pb_line_break_holder] --><option value=\"square\">Formato Cuadrado (1080&#215;1080)<\/option><!-- [et_pb_line_break_holder] --><option value=\"tall\">Formato Vertical (1080&#215;1350)<\/option><!-- [et_pb_line_break_holder] --><option value=\"story\">Formato Storie (1080&#215;1920)<\/option><!-- Nueva opci\u00f3n --><!-- [et_pb_line_break_holder] -->                <\/select><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            <\/p>\n<div><!-- [et_pb_line_break_holder] -->                <label for=\"interview-combined-gen-quote\" class=\"block text-sm font-semibold text-gray-700 mb-1\">Frase destacada de la entrevista<\/label><!-- [et_pb_line_break_holder] -->                <textarea id=\"interview-combined-gen-quote\" rows=\"4\" class=\"w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-[#C11731] focus:border-[#C11731] transition\" placeholder=\"Escribe aqu\u00ed la frase m\u00e1s impactante de la entrevista...\"><\/textarea><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            <\/p>\n<div><!-- [et_pb_line_break_holder] -->                <label for=\"interview-combined-gen-interviewerName\" class=\"block text-sm font-semibold text-gray-700 mb-1\">Nombre del Entrevistado<\/label><!-- [et_pb_line_break_holder] -->                <input type=\"text\" id=\"interview-combined-gen-interviewerName\" class=\"w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-[#C11731] focus:border-[#C11731] transition\" placeholder=\"Ej: Otto Sonnenholzner\"><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            <\/p>\n<div><!-- [et_pb_line_break_holder] -->                <label for=\"interview-combined-gen-backgroundImageUpload\" class=\"block text-sm font-semibold text-gray-700 mb-1\">Imagen de Fondo (Opcional)<\/label><!-- [et_pb_line_break_holder] -->                <input type=\"file\" id=\"interview-combined-gen-backgroundImageUpload\" accept=\"image\/*\" class=\"w-full text-sm text-gray-500 file:mr-4 file:py-2 file:px-4 file:rounded-lg file:border-0 file:text-sm file:font-semibold file:bg-red-50 file:text-[#C11731] hover:file:bg-red-100 transition\"><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"pt-4\"><!-- [et_pb_line_break_holder] -->                <button id=\"interview-combined-gen-downloadBtn\" class=\"w-full bg-custom-red text-white font-bold py-3 px-4 rounded-lg hover:bg-custom-red-dark focus:outline-none focus:ring-4 focus:ring-red-300 transition-all duration-300 transform hover:scale-105\"><!-- [et_pb_line_break_holder] -->                    Descargar Imagen (PNG)<!-- [et_pb_line_break_holder] -->                <\/button><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Previsualizaci\u00f3n en Canvas --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"w-full lg:w-2\/3 p-6 md:p-8 bg-gray-200 flex items-center justify-center\"><!-- [et_pb_line_break_holder] -->        <canvas id=\"interview-combined-gen-canvas\" width=\"1080\" height=\"1080\" class=\"w-full h-auto max-w-full rounded-lg shadow-lg\"><\/canvas><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Caja de explicaci\u00f3n de formatos --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"format-explanation-box w-full max-w-5xl mx-auto mt-8 p-6 bg-gray-50 rounded-xl shadow-xl\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"text-xl font-bold text-gray-800 font-serif mb-3\">Gu\u00eda de Formatos<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"text-gray-700 mb-2\">Aqu\u00ed te explicamos d\u00f3nde usar cada formato de imagen:<\/pee><!-- [et_pb_line_break_holder] -->    <\/p>\n<ul class=\"list-disc list-inside text-gray-700 space-y-1\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<li>El formato <strong>Cuadrado (1080&#215;1080)<\/strong> es ideal para posts en <strong>Facebook, LinkedIn y grupos de WhatsApp<\/strong>.<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<li>El formato <strong>Vertical (1080&#215;1350)<\/strong> est\u00e1 optimizado para <strong>posts de Instagram<\/strong>.<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<li>El formato <strong>Storie (1080&#215;1920)<\/strong> es perfecto para <strong>cualquier tipo de storie<\/strong> (Instagram, Facebook, WhatsApp, etc.).<\/li>\n<p><!-- [et_pb_line_break_holder] -->    <\/ul>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- SCRIPT DE FUNCIONALIDAD --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->    \/\/ Encapsula todo el script en una IIFE para evitar conflictos de \u00e1mbito global<!-- [et_pb_line_break_holder] -->    (function() {<!-- [et_pb_line_break_holder] -->        function iniciarGeneradorCombinado() {<!-- [et_pb_line_break_holder] -->            const container = document.querySelector('.interview-combined-gen-container');<!-- [et_pb_line_break_holder] -->            if (!container) {<!-- [et_pb_line_break_holder] -->                setTimeout(iniciarGeneradorCombinado, 100);<!-- [et_pb_line_break_holder] -->                return;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const canvas = container.querySelector('#interview-combined-gen-canvas');<!-- [et_pb_line_break_holder] -->            const ctx = canvas.getContext('2d');<!-- [et_pb_line_break_holder] -->            const formatSelect = container.querySelector('#interview-combined-gen-formatSelect');<!-- [et_pb_line_break_holder] -->            const quoteInput = container.querySelector('#interview-combined-gen-quote');<!-- [et_pb_line_break_holder] -->            const interviewerNameInput = container.querySelector('#interview-combined-gen-interviewerName');<!-- [et_pb_line_break_holder] -->            const backgroundImageUpload = container.querySelector('#interview-combined-gen-backgroundImageUpload');<!-- [et_pb_line_break_holder] -->            const downloadBtn = container.querySelector('#interview-combined-gen-downloadBtn');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            let logoImage = new Image();<!-- [et_pb_line_break_holder] -->            logoImage.crossOrigin = \"Anonymous\";<!-- [et_pb_line_break_holder] -->            logoImage.src = 'https:\/\/polisecuador.org\/wp-content\/uploads\/2025\/06\/logo-plog-2-generador.png';<!-- [et_pb_line_break_holder] -->            logoImage.onerror = () => {<!-- [et_pb_line_break_holder] -->                console.error(\"Error al cargar la imagen del logo. Aseg\u00farate de que la URL sea correcta y accesible.\");<!-- [et_pb_line_break_holder] -->            };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            let backgroundImage = new Image();<!-- [et_pb_line_break_holder] -->            backgroundImage.crossOrigin = \"Anonymous\";<!-- [et_pb_line_break_holder] -->            backgroundImage.src = 'https:\/\/polisecuador.org\/wp-content\/uploads\/2025\/06\/fondo-2-generador.jpg';<!-- [et_pb_line_break_holder] -->            backgroundImage.onerror = () => {<!-- [et_pb_line_break_holder] -->                console.error(\"No se pudo cargar la imagen de fondo por defecto. Se usar\u00e1 un color s\u00f3lido con opacidad.\");<!-- [et_pb_line_break_holder] -->                drawCanvas(formatSelect.value);<!-- [et_pb_line_break_holder] -->            };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/ --- Funciones de dibujo ---<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            function drawCanvas(format) {<!-- [et_pb_line_break_holder] -->                \/\/ Ajustar las dimensiones del canvas seg\u00fan el formato seleccionado<!-- [et_pb_line_break_holder] -->                if (format === 'square') {<!-- [et_pb_line_break_holder] -->                    canvas.width = 1080;<!-- [et_pb_line_break_holder] -->                    canvas.height = 1080;<!-- [et_pb_line_break_holder] -->                } else if (format === 'tall') {<!-- [et_pb_line_break_holder] -->                    canvas.width = 1080;<!-- [et_pb_line_break_holder] -->                    canvas.height = 1350;<!-- [et_pb_line_break_holder] -->                } else { \/\/ format === 'story'<!-- [et_pb_line_break_holder] -->                    canvas.width = 1080;<!-- [et_pb_line_break_holder] -->                    canvas.height = 1920;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                ctx.clearRect(0, 0, canvas.width, canvas.height);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ 1. Dibuja la imagen de fondo<!-- [et_pb_line_break_holder] -->                if (backgroundImage.complete && backgroundImage.naturalHeight !== 0) {<!-- [et_pb_line_break_holder] -->                    const aspectRatioCanvas = canvas.width \/ canvas.height;<!-- [et_pb_line_break_holder] -->                    const aspectRatioImage = backgroundImage.width \/ backgroundImage.height;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                    let sx, sy, sWidth, sHeight;<!-- [et_pb_line_break_holder] -->                    let dx, dy, dWidth, dHeight;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                    if (aspectRatioImage > aspectRatioCanvas) {<!-- [et_pb_line_break_holder] -->                        sHeight = backgroundImage.height;<!-- [et_pb_line_break_holder] -->                        sWidth = sHeight * aspectRatioCanvas;<!-- [et_pb_line_break_holder] -->                        sx = (backgroundImage.width - sWidth) \/ 2;<!-- [et_pb_line_break_holder] -->                        sy = 0;<!-- [et_pb_line_break_holder] -->                    } else {<!-- [et_pb_line_break_holder] -->                        sWidth = backgroundImage.width;<!-- [et_pb_line_break_holder] -->                        sHeight = sWidth \/ aspectRatioCanvas;<!-- [et_pb_line_break_holder] -->                        sx = 0;<!-- [et_pb_line_break_holder] -->                        sy = (backgroundImage.height - sHeight) \/ 2;<!-- [et_pb_line_break_holder] -->                    }<!-- [et_pb_line_break_holder] -->                    dx = 0;<!-- [et_pb_line_break_holder] -->                    dy = 0;<!-- [et_pb_line_break_holder] -->                    dWidth = canvas.width;<!-- [et_pb_line_break_holder] -->                    dHeight = canvas.height;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                    ctx.drawImage(backgroundImage, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);<!-- [et_pb_line_break_holder] -->                } else {<!-- [et_pb_line_break_holder] -->                    ctx.fillStyle = '#334155';<!-- [et_pb_line_break_holder] -->                    ctx.fillRect(0, 0, canvas.width, canvas.height);<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ 2. Dibuja una capa semitransparente con degradado de opacidad (rojo de marca)<!-- [et_pb_line_break_holder] -->                const redGradient = ctx.createLinearGradient(0, 0, 0, canvas.height);<!-- [et_pb_line_break_holder] -->                redGradient.addColorStop(0, 'rgba(193, 23, 49, 0.3)'); \/\/ M\u00e1s transparente en la parte superior<!-- [et_pb_line_break_holder] -->                redGradient.addColorStop(1, 'rgba(193, 23, 49, 0.8)'); \/\/ Menos transparente (m\u00e1s opaco) en la parte inferior<!-- [et_pb_line_break_holder] -->                ctx.fillStyle = redGradient;<!-- [et_pb_line_break_holder] -->                ctx.fillRect(0, 0, canvas.width, canvas.height);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ 3. Dibuja una capa adicional negra con mayor opacidad para oscurecer a\u00fan m\u00e1s<!-- [et_pb_line_break_holder] -->                ctx.fillStyle = \"rgba(0, 0, 0, 0.55)\";<!-- [et_pb_line_break_holder] -->                ctx.fillRect(0, 0, canvas.width, canvas.height);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ 4. Dibuja la vi\u00f1eta \"Entrevista\" como una bandera<!-- [et_pb_line_break_holder] -->                const vignetteText = \"ENTREVISTA\";<!-- [et_pb_line_break_holder] -->                const vignettePaddingX = 20;<!-- [et_pb_line_break_holder] -->                const vignettePaddingY = 10;<!-- [et_pb_line_break_holder] -->                let vignetteFontSize;<!-- [et_pb_line_break_holder] -->                let vignetteY;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                if (format === 'story') {<!-- [et_pb_line_break_holder] -->                    vignetteFontSize = 45; \/\/ Aumentado de 40px a 45px para storie<!-- [et_pb_line_break_holder] -->                    vignetteY = 180; \/\/ Bajado de 150px a 180px para storie<!-- [et_pb_line_break_holder] -->                } else {<!-- [et_pb_line_break_holder] -->                    vignetteFontSize = 36;<!-- [et_pb_line_break_holder] -->                    vignetteY = 60;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                const vignetteTextX = 60;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                ctx.font = `bold ${vignetteFontSize}px 'Montserrat', sans-serif`;<!-- [et_pb_line_break_holder] -->                const textMetrics = ctx.measureText(vignetteText);<!-- [et_pb_line_break_holder] -->                const textWidth = textMetrics.width;<!-- [et_pb_line_break_holder] -->                const textHeight = vignetteFontSize;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                const bannerWidth = textWidth + (vignettePaddingX * 2) + 80;<!-- [et_pb_line_break_holder] -->                const bannerHeight = textHeight + (vignettePaddingY * 2);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                ctx.fillStyle = '#FFFFFF';<!-- [et_pb_line_break_holder] -->                ctx.fillRect(0, vignetteY - vignettePaddingY, bannerWidth, bannerHeight);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                const vignetteTextCenteredY = (vignetteY - vignettePaddingY) + (bannerHeight \/ 2) - (textHeight \/ 2);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                ctx.fillStyle = '#000000';<!-- [et_pb_line_break_holder] -->                ctx.textAlign = 'left';<!-- [et_pb_line_break_holder] -->                ctx.textBaseline = 'top';<!-- [et_pb_line_break_holder] -->                ctx.fillText(vignetteText, vignetteTextX, vignetteTextCenteredY);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ 5. Dibuja el texto de la entrevista<!-- [et_pb_line_break_holder] -->                const finalQuoteBlockY = drawText(format); \/\/ Obtiene la posici\u00f3n Y final del bloque de texto<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ 6. Dibuja el texto \"L\u00e9ela completa en PLOG>>\" y el logo<!-- [et_pb_line_break_holder] -->                drawFooterElements(format, finalQuoteBlockY);<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/ Nueva funci\u00f3n para dibujar el pie de p\u00e1gina (leyenda y logo)<!-- [et_pb_line_break_holder] -->            function drawFooterElements(format, finalQuoteBlockY) {<!-- [et_pb_line_break_holder] -->                const legendText = \"L\u00e9ela completa en PLOG>>\";<!-- [et_pb_line_break_holder] -->                let legendFontSize;<!-- [et_pb_line_break_holder] -->                let legendPaddingAfterQuote; \/\/ Padding after quote block<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                if (format === 'story') {<!-- [et_pb_line_break_holder] -->                    legendFontSize = 40; \/\/ Aumentado para storie<!-- [et_pb_line_break_holder] -->                    legendPaddingAfterQuote = 60; \/\/ Aumentado para storie (antes 40)<!-- [et_pb_line_break_holder] -->                } else {<!-- [et_pb_line_break_holder] -->                    legendFontSize = 32;<!-- [et_pb_line_break_holder] -->                    legendPaddingAfterQuote = 40;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                ctx.font = `italic ${legendFontSize}px 'Montserrat', sans-serif`;<!-- [et_pb_line_break_holder] -->                const legendMetrics = ctx.measureText(legendText);<!-- [et_pb_line_break_holder] -->                const legendWidth = legendMetrics.width;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                let legendX, legendY;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ Logo dimensions for positioning<!-- [et_pb_line_break_holder] -->                const logoWidth = 200;<!-- [et_pb_line_break_holder] -->                const logoHeight = 60;<!-- [et_pb_line_break_holder] -->                let logoPaddingBottom; \/\/ Padding desde el borde inferior del canvas<!-- [et_pb_line_break_holder] -->                let logoX;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                if (format === 'story') {<!-- [et_pb_line_break_holder] -->                    logoX = (canvas.width - logoWidth) \/ 2; \/\/ Centrado horizontalmente<!-- [et_pb_line_break_holder] -->                    logoPaddingBottom = 100; \/\/ Subir un poco para storie<!-- [et_pb_line_break_holder] -->                } else {<!-- [et_pb_line_break_holder] -->                    logoX = canvas.width - logoWidth - 50; \/\/ Posici\u00f3n por defecto a la derecha<!-- [et_pb_line_break_holder] -->                    logoPaddingBottom = 75; \/\/ Ajustado de 70 a 75 para cuadrado\/vertical (subir un poco m\u00e1s)<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ Calculate logo's actual bottom Y position<!-- [et_pb_line_break_holder] -->                const logoBottomY = canvas.height - logoPaddingBottom;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                if (format === 'story') {<!-- [et_pb_line_break_holder] -->                    legendX = (canvas.width - legendWidth) \/ 2;<!-- [et_pb_line_break_holder] -->                    legendY = finalQuoteBlockY + legendPaddingAfterQuote;<!-- [et_pb_line_break_holder] -->                    ctx.textAlign = 'left';<!-- [et_pb_line_break_holder] -->                } else {<!-- [et_pb_line_break_holder] -->                    legendX = 60;<!-- [et_pb_line_break_holder] -->                    \/\/ Para cuadrado\/vertical, alinear el borde inferior de la leyenda con el borde inferior del logo<!-- [et_pb_line_break_holder] -->                    \/\/ legendY es el top del texto (textBaseline = 'top')<!-- [et_pb_line_break_holder] -->                    \/\/ Entonces, legendY + legendFontSize = logoBottomY<!-- [et_pb_line_break_holder] -->                    legendY = logoBottomY - legendFontSize; \/\/ Ajustado para alinear con el borde inferior del logo<!-- [et_pb_line_break_holder] -->                    ctx.textAlign = 'left';<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                ctx.fillStyle = '#FFFFFF';<!-- [et_pb_line_break_holder] -->                ctx.textBaseline = 'top'; \/\/ Usar 'top' para posicionar relativo a legendY<!-- [et_pb_line_break_holder] -->                ctx.fillText(legendText, legendX, legendY);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ 7. Dibuja el logo<!-- [et_pb_line_break_holder] -->                if (logoImage.complete && logoImage.naturalHeight !== 0) {<!-- [et_pb_line_break_holder] -->                    \/\/ El logo se dibuja desde su esquina superior izquierda<!-- [et_pb_line_break_holder] -->                    ctx.drawImage(logoImage, logoX, logoBottomY - logoHeight, logoWidth, logoHeight);<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            function drawText(format) {<!-- [et_pb_line_break_holder] -->                let quoteText = quoteInput.value || \"Tu frase memorable va aqu\u00ed. Algo que inspire y capture la esencia de tu mensaje.\";<!-- [et_pb_line_break_holder] -->                if (!quoteText.startsWith('\u201c')) {<!-- [et_pb_line_break_holder] -->                    quoteText = '\u201c' + quoteText;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->                if (!quoteText.endsWith('\u201d')) {<!-- [et_pb_line_break_holder] -->                    quoteText = quoteText + '\u201d';<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                const interviewerName = interviewerNameInput.value || \"Nombre del Entrevistado\";<!-- [et_pb_line_break_holder] -->                const maxWidth = canvas.width - 120;<!-- [et_pb_line_break_holder] -->                const paddingX = 60;<!-- [et_pb_line_break_holder] -->                let startY;<!-- [et_pb_line_break_holder] -->                let nameFontSize, nameLineHeight, quoteFontSize, quoteLineHeight;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ Ajustar startY y tama\u00f1os de fuente seg\u00fan el formato<!-- [et_pb_line_break_holder] -->                if (format === 'square') {<!-- [et_pb_line_break_holder] -->                    startY = 580; \/\/ Bajado de 550 a 580 para el formato cuadrado<!-- [et_pb_line_break_holder] -->                    nameFontSize = 44;<!-- [et_pb_line_break_holder] -->                    nameLineHeight = 50;<!-- [et_pb_line_break_holder] -->                    quoteFontSize = 75;<!-- [et_pb_line_break_holder] -->                    quoteLineHeight = 88;<!-- [et_pb_line_break_holder] -->                } else if (format === 'tall') {<!-- [et_pb_line_break_holder] -->                    startY = 710; \/\/ Bajado de 680 a 710 para el formato vertical<!-- [et_pb_line_break_holder] -->                    nameFontSize = 48;<!-- [et_pb_line_break_holder] -->                    nameLineHeight = 55;<!-- [et_pb_line_break_holder] -->                    quoteFontSize = 80;<!-- [et_pb_line_break_holder] -->                    quoteLineHeight = 95;<!-- [et_pb_line_break_holder] -->                } else { \/\/ format === 'story'<!-- [et_pb_line_break_holder] -->                    startY = 925; \/\/ Mantener esta posici\u00f3n inicial, ajustar si es necesario con las nuevas fuentes<!-- [et_pb_line_break_holder] -->                    nameFontSize = 50; \/\/ Aumentado para storie<!-- [et_pb_line_break_holder] -->                    nameLineHeight = 58; \/\/ Ajustado para nueva fuente storie<!-- [et_pb_line_break_holder] -->                    quoteFontSize = 85; \/\/ Aumentado para storie<!-- [et_pb_line_break_holder] -->                    quoteLineHeight = 100; \/\/ Ajustado para nueva fuente storie<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ Dibuja el nombre del entrevistado<!-- [et_pb_line_break_holder] -->                ctx.fillStyle = '#e2e8f0';<!-- [et_pb_line_break_holder] -->                ctx.font = `italic ${nameFontSize}px 'Montserrat', sans-serif`;<!-- [et_pb_line_break_holder] -->                ctx.textAlign = 'left';<!-- [et_pb_line_break_holder] -->                ctx.textBaseline = 'top';<!-- [et_pb_line_break_holder] -->                const nameY = startY;<!-- [et_pb_line_break_holder] -->                ctx.fillText(`${interviewerName}:`, paddingX, nameY);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ Dibuja la frase destacada<!-- [et_pb_line_break_holder] -->                ctx.fillStyle = '#FFFFFF';<!-- [et_pb_line_break_holder] -->                ctx.font = `bold ${quoteFontSize}px 'Merriweather', serif`;<!-- [et_pb_line_break_holder] -->                const quoteY = nameY + nameLineHeight + 20;<!-- [et_pb_line_break_holder] -->                const totalQuoteTextHeight = wrapText(ctx, quoteText, paddingX, quoteY, maxWidth, quoteLineHeight);<!-- [et_pb_line_break_holder] -->                return quoteY + totalQuoteTextHeight; \/\/ Devuelve la Y final del bloque de la frase<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            function wrapText(context, text, x, y, maxWidth, lineHeight) {<!-- [et_pb_line_break_holder] -->                const words = text.split(' ');<!-- [et_pb_line_break_holder] -->                let line = '';<!-- [et_pb_line_break_holder] -->                let startY = y;<!-- [et_pb_line_break_holder] -->                let totalHeight = 0;<!-- [et_pb_line_break_holder] -->                for (let n = 0; n < words.length; n++) {<!-- [et_pb_line_break_holder] -->                    const testLine = line + words[n] + ' ';<!-- [et_pb_line_break_holder] -->                    const metrics = context.measureText(testLine);<!-- [et_pb_line_break_holder] -->                    const testWidth = metrics.width;<!-- [et_pb_line_break_holder] -->                    if (testWidth > maxWidth && n > 0) {<!-- [et_pb_line_break_holder] -->                        context.fillText(line, x, startY);<!-- [et_pb_line_break_holder] -->                        line = words[n] + ' ';<!-- [et_pb_line_break_holder] -->                        startY += lineHeight;<!-- [et_pb_line_break_holder] -->                        totalHeight += lineHeight;<!-- [et_pb_line_break_holder] -->                    } else {<!-- [et_pb_line_break_holder] -->                        line = testLine;<!-- [et_pb_line_break_holder] -->                    }<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->                context.fillText(line, x, startY);<!-- [et_pb_line_break_holder] -->                totalHeight += lineHeight;<!-- [et_pb_line_break_holder] -->                return totalHeight;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/ --- Event Listeners ---<!-- [et_pb_line_break_holder] -->            formatSelect.addEventListener('change', () => drawCanvas(formatSelect.value));<!-- [et_pb_line_break_holder] -->            quoteInput.addEventListener('input', () => drawCanvas(formatSelect.value));<!-- [et_pb_line_break_holder] -->            interviewerNameInput.addEventListener('input', () => drawCanvas(formatSelect.value));<!-- [et_pb_line_break_holder] -->            backgroundImageUpload.addEventListener('change', (e) => {<!-- [et_pb_line_break_holder] -->                const file = e.target.files[0];<!-- [et_pb_line_break_holder] -->                if (file) {<!-- [et_pb_line_break_holder] -->                    const reader = new FileReader();<!-- [et_pb_line_break_holder] -->                    reader.onload = (event) => {<!-- [et_pb_line_break_holder] -->                        backgroundImage = new Image();<!-- [et_pb_line_break_holder] -->                        backgroundImage.onload = () => drawCanvas(formatSelect.value);<!-- [et_pb_line_break_holder] -->                        backgroundImage.src = event.target.result;<!-- [et_pb_line_break_holder] -->                    };<!-- [et_pb_line_break_holder] -->                    reader.readAsDataURL(file);<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            downloadBtn.addEventListener('click', () => {<!-- [et_pb_line_break_holder] -->                const dataURL = canvas.toDataURL('image\/png');<!-- [et_pb_line_break_holder] -->                const currentName = interviewerNameInput.value.replace(\/\\s+\/g, '_').toLowerCase() || 'promo';<!-- [et_pb_line_break_holder] -->                let formatPrefix = '';<!-- [et_pb_line_break_holder] -->                if (formatSelect.value === 'square') {<!-- [et_pb_line_break_holder] -->                    formatPrefix = 'entrevista-cuadrada';<!-- [et_pb_line_break_holder] -->                } else if (formatSelect === 'tall') {<!-- [et_pb_line_break_holder] -->                    formatPrefix = 'entrevista-vertical';<!-- [et_pb_line_break_holder] -->                } else { \/\/ format === 'story'<!-- [et_pb_line_break_holder] -->                    formatPrefix = 'entrevista-storie';<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->                const link = document.createElement('a');<!-- [et_pb_line_break_holder] -->                link.download = `${formatPrefix}-${currentName}.png`;<!-- [et_pb_line_break_holder] -->                link.href = dataURL;<!-- [et_pb_line_break_holder] -->                document.body.appendChild(link);<!-- [et_pb_line_break_holder] -->                link.click();<!-- [et_pb_line_break_holder] -->                document.body.removeChild(link);<!-- [et_pb_line_break_holder] -->            });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/ Redibujar el canvas cuando las im\u00e1genes terminen de cargar<!-- [et_pb_line_break_holder] -->            logoImage.onload = () => drawCanvas(formatSelect.value);<!-- [et_pb_line_break_holder] -->            backgroundImage.onload = () => drawCanvas(formatSelect.value);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/ Inicializar el canvas con el formato por defecto<!-- [et_pb_line_break_holder] -->            drawCanvas(formatSelect.value);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/ Iniciar el script cuando el DOM est\u00e9 listo o despu\u00e9s de un peque\u00f1o retraso si ya est\u00e1 listo<!-- [et_pb_line_break_holder] -->        if (document.readyState === 'loading') {<!-- [et_pb_line_break_holder] -->            document.addEventListener('DOMContentLoaded', () => setTimeout(iniciarGeneradorCombinado, 100));<!-- [et_pb_line_break_holder] -->        } else {<!-- [et_pb_line_break_holder] -->            setTimeout(iniciarGeneradorCombinado, 100);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    })();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n<span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":685,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-1895","page","type-page","status-publish","hentry"],"pp_statuses_selecting_workflow":false,"pp_workflow_action":"current","pp_status_selection":"publish","acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Img Entrevista - Polis Ecuador<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/polisecuador.org\/en\/plog\/img-entrevista\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Img Entrevista - Polis Ecuador\" \/>\n<meta property=\"og:url\" content=\"https:\/\/polisecuador.org\/en\/plog\/img-entrevista\/\" \/>\n<meta property=\"og:site_name\" content=\"Polis Ecuador\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/polisecuador\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-30T08:43:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/polisecuador.org\/wp-content\/uploads\/2024\/05\/Sin-titulo-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@polisecuador\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/polisecuador.org\\\/plog\\\/img-entrevista\\\/\",\"url\":\"https:\\\/\\\/polisecuador.org\\\/plog\\\/img-entrevista\\\/\",\"name\":\"Img Entrevista - Polis Ecuador\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/polisecuador.org\\\/#website\"},\"datePublished\":\"2025-07-30T06:17:28+00:00\",\"dateModified\":\"2025-07-30T08:43:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/polisecuador.org\\\/plog\\\/img-entrevista\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/polisecuador.org\\\/plog\\\/img-entrevista\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/polisecuador.org\\\/plog\\\/img-entrevista\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/polisecuador.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Plog\",\"item\":\"https:\\\/\\\/polisecuador.org\\\/plog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Img Entrevista\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/polisecuador.org\\\/#website\",\"url\":\"https:\\\/\\\/polisecuador.org\\\/\",\"name\":\"Polis Ecuador\",\"description\":\"Academia de Formaci\u00f3n Pol\u00edtica\",\"publisher\":{\"@id\":\"https:\\\/\\\/polisecuador.org\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/polisecuador.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/polisecuador.org\\\/#organization\",\"name\":\"Polis Ecuador\",\"url\":\"https:\\\/\\\/polisecuador.org\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/polisecuador.org\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/polisecuador.org\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/polis-web.svg\",\"contentUrl\":\"https:\\\/\\\/polisecuador.org\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/polis-web.svg\",\"width\":1391.69,\"height\":754.13,\"caption\":\"Polis Ecuador\"},\"image\":{\"@id\":\"https:\\\/\\\/polisecuador.org\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/polisecuador\",\"https:\\\/\\\/x.com\\\/polisecuador\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Img Entrevista - Polis Ecuador","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/polisecuador.org\/en\/plog\/img-entrevista\/","og_locale":"en_US","og_type":"article","og_title":"Img Entrevista - Polis Ecuador","og_url":"https:\/\/polisecuador.org\/en\/plog\/img-entrevista\/","og_site_name":"Polis Ecuador","article_publisher":"https:\/\/www.facebook.com\/polisecuador","article_modified_time":"2025-07-30T08:43:01+00:00","og_image":[{"width":1500,"height":500,"url":"https:\/\/polisecuador.org\/wp-content\/uploads\/2024\/05\/Sin-titulo-2.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@polisecuador","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/polisecuador.org\/plog\/img-entrevista\/","url":"https:\/\/polisecuador.org\/plog\/img-entrevista\/","name":"Img Entrevista - Polis Ecuador","isPartOf":{"@id":"https:\/\/polisecuador.org\/#website"},"datePublished":"2025-07-30T06:17:28+00:00","dateModified":"2025-07-30T08:43:01+00:00","breadcrumb":{"@id":"https:\/\/polisecuador.org\/plog\/img-entrevista\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/polisecuador.org\/plog\/img-entrevista\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/polisecuador.org\/plog\/img-entrevista\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/polisecuador.org\/"},{"@type":"ListItem","position":2,"name":"Plog","item":"https:\/\/polisecuador.org\/plog\/"},{"@type":"ListItem","position":3,"name":"Img Entrevista"}]},{"@type":"WebSite","@id":"https:\/\/polisecuador.org\/#website","url":"https:\/\/polisecuador.org\/","name":"Polis Ecuador","description":"Academia de Formaci\u00f3n Pol\u00edtica","publisher":{"@id":"https:\/\/polisecuador.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/polisecuador.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/polisecuador.org\/#organization","name":"Polis Ecuador","url":"https:\/\/polisecuador.org\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/polisecuador.org\/#\/schema\/logo\/image\/","url":"https:\/\/polisecuador.org\/wp-content\/uploads\/2023\/04\/polis-web.svg","contentUrl":"https:\/\/polisecuador.org\/wp-content\/uploads\/2023\/04\/polis-web.svg","width":1391.69,"height":754.13,"caption":"Polis Ecuador"},"image":{"@id":"https:\/\/polisecuador.org\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/polisecuador","https:\/\/x.com\/polisecuador"]}]}},"_links":{"self":[{"href":"https:\/\/polisecuador.org\/en\/wp-json\/wp\/v2\/pages\/1895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/polisecuador.org\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/polisecuador.org\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/polisecuador.org\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/polisecuador.org\/en\/wp-json\/wp\/v2\/comments?post=1895"}],"version-history":[{"count":0,"href":"https:\/\/polisecuador.org\/en\/wp-json\/wp\/v2\/pages\/1895\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/polisecuador.org\/en\/wp-json\/wp\/v2\/pages\/685"}],"wp:attachment":[{"href":"https:\/\/polisecuador.org\/en\/wp-json\/wp\/v2\/media?parent=1895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}