đŸ”„GĂ©nĂ©rateur Facebook multiple post

Générateur de Posts Facebook - Images Multiples

Générateur de Posts Facebook - Images Multiples

Logo Transparent & FlĂšche

Afficher le logo en bas Ă  droite du texte :
Afficher la flĂšche en bas :

🎹 Couleur de Bordure du Logo

Orange Vif
Turquoise
Violet
Vert
Bleu
Or
Rose
Rouge Orange
Violet Profond
Cyan

📁 Importation d'Images en Masse (jusqu'à 100 posts)

Sélectionnez jusqu'à 100 images - chaque image sera attribuée à un post dans l'ordre.
Formats acceptés : JPG, PNG, GIF, WebP. Taille max recommandée : 5MB par image.
Aucune image sélectionnée

Réglages de l'image avec aperçu en direct

Aperçu de référence pour le réglage
Ma Marque ✓
@utilisateur Description
Votre citation apparaĂźtra ici
⬇️
Logo
Les réglages appliqués ici seront automatiquement reportés sur tous les posts
Cette image servira de modÚle pour tous les posts. Les réglages (position, zoom, rotation) appliqués ici seront automatiquement répliqués.
50%
30%
100%

Informations de profil

Afficher le badge de vérification :

Génération des citations

15px
Aperçu des citations chargées...

Gestion des Posts

Aucun post généré
}); saveData(); } function updateAllPostsArrow() { generatedPosts.forEach(post => { const arrowElement = document.getElementById(`arrowIcon${post.id}`); if (arrowElement) { arrowElement.textContent = arrowEmoji; arrowElement.style.display = showArrow ? 'block' : 'none'; } }); } function toggleSettingsLock() { const lockButton = document.getElementById('lockSettingsBtn'); settingsLocked = !settingsLocked; if (settingsLocked) { lockButton.textContent = '🔐 RĂ©glages verrouillĂ©s'; lockButton.classList.add('locked'); } else { lockButton.textContent = '🔓 Verrouiller tous les rĂ©glages'; lockButton.classList.remove('locked'); } lockableControlIds.forEach(controlId => { const control = document.getElementById(controlId); const parentControlGroup = control.closest('.control-group'); if (parentControlGroup) { if (settingsLocked) { control.disabled = true; parentControlGroup.classList.add('control-locked'); parentControlGroup.setAttribute('data-html2canvas-ignore', 'true'); const resetBtn = parentControlGroup.querySelector('.reset-btn'); if (resetBtn) { resetBtn.style.display = 'none'; resetBtn.setAttribute('data-html2canvas-ignore', 'true'); } } else { control.disabled = false; parentControlGroup.classList.remove('control-locked'); parentControlGroup.removeAttribute('data-html2canvas-ignore'); const resetBtn = parentControlGroup.querySelector('.reset-btn'); if (resetBtn) { resetBtn.style.display = 'block'; resetBtn.removeAttribute('data-html2canvas-ignore'); } } } }); const mainResetBtn = document.querySelector('button[onclick="resetImageSettings()"]'); if (mainResetBtn) { mainResetBtn.disabled = settingsLocked; mainResetBtn.style.opacity = settingsLocked ? '0.5' : '1'; if (settingsLocked) { mainResetBtn.setAttribute('data-html2canvas-ignore', 'true'); } else { mainResetBtn.removeAttribute('data-html2canvas-ignore'); } } saveData(); } function handleReferenceImageUpload(event) { const file = event.target.files[0]; if (!file) return; const reader = new FileReader(); reader.onload = function(e) { referenceImage = e.target.result; updateReferencePost(); saveData(); applyReferenceImageToAllPosts(); alert('✅ Image de rĂ©fĂ©rence chargĂ©e et appliquĂ©e Ă  tous les posts !'); }; reader.readAsDataURL(file); } function applyReferenceImageToAllPosts() { if (!referenceImage) return; const referenceImg = document.getElementById('referenceUploadedImg'); if (referenceImg) { referenceImg.src = referenceImage; referenceImg.style.display = 'block'; } generatedPosts.forEach(post => { const postImg = document.getElementById(`uploadedImg${post.id}`); if (postImg) { postImg.src = referenceImage; postImg.style.display = 'block'; const x = document.getElementById('imageX').value; const y = document.getElementById('imageY').value; const zoom = document.getElementById('imageZoom').value; const rotation = document.getElementById('imageRotation').value; updateImagePositionForPost(post.id, x, y, zoom, rotation); } }); updatePostImagePreviews(); } function updatePostImagePreviews() { generatedPosts.forEach(post => { const postItem = document.querySelector(`.post-item[data-id="${post.id}"]`); if (postItem) { const postImagePreview = postItem.querySelector('.post-image-preview'); const postImageInfo = postItem.querySelector('.post-image-info'); const viewBtn = postItem.querySelector('.post-image-view'); const removeBtn = postItem.querySelector('.post-image-remove'); if (referenceImage && !postImages[post.id]) { if (postImagePreview) { postImagePreview.src = referenceImage; postImagePreview.classList.add('show'); } if (postImageInfo) { postImageInfo.textContent = 'Image de rĂ©fĂ©rence ✓'; postImageInfo.classList.add('show'); } if (viewBtn) viewBtn.style.display = 'block'; if (removeBtn) removeBtn.style.display = 'block'; } else if (postImages[post.id]) { if (postImagePreview) { postImagePreview.src = postImages[post.id]; postImagePreview.classList.add('show'); } if (postImageInfo) { postImageInfo.textContent = 'Image spĂ©cifique ✓'; postImageInfo.classList.add('show'); } if (viewBtn) viewBtn.style.display = 'block'; if (removeBtn) removeBtn.style.display = 'block'; } }