Spaces:
Runtime error
Runtime error
function loadImagesInput(event) { | |
if (event.key === 'Enter') { | |
loadImages(); | |
} | |
} | |
function loadImages() { | |
const outputDir = document.getElementById('output-directory').value; | |
fetch(`/images/${outputDir}`) | |
.then(response => response.json()) | |
.then(files => { | |
// Filter files to only include those with the .png extension | |
images = files.filter(file => file.endsWith('.png')).map(file => `/image/${outputDir}/${file}`); | |
fileNames = files.filter(file => file.endsWith('.png')); // Filter file names as well | |
currentIndex = 0; // Reset index when new images are loaded | |
if (images.length > 0) { | |
displayImage(currentIndex); | |
} else { | |
document.getElementsById('image-display').src = ""; | |
document.getElementById('expression-image-name').textContent = "No PNG images found."; | |
} | |
}) | |
.catch(error => { | |
console.error('Error loading images:', error); | |
alert('Failed to load images.'); | |
}); | |
} | |
function navigate(direction) { | |
if (images.length > 0) { | |
currentIndex += direction; | |
// Wrap around the navigation | |
if (currentIndex < 0) { | |
currentIndex = images.length - 1; | |
} else if (currentIndex >= images.length) { | |
currentIndex = 0; | |
} | |
displayImage(currentIndex); | |
} | |
} | |
function displayImage(index) { | |
document.getElementById('image-display').src = images[index]; | |
//document.getElementById('image-name').textContent = "Expression: " + fileNames[index]); | |
//document.getElementById('image-name').textContent = "Expression: " + fileNames[index].substring(0, fileNames[index].lastIndexOf('.')); | |
document.getElementById('expression-image-name').textContent = fileNames[index].replace(/\.[^.]+$/, '').charAt(0).toUpperCase() + fileNames[index].replace(/\.[^.]+$/, '').slice(1).toLowerCase(); | |
} | |
function calculateAspectRatio(image) { | |
const naturalWidth = image.naturalWidth; | |
const naturalHeight = image.naturalHeight; | |
if (naturalWidth && naturalHeight) { | |
return naturalWidth / naturalHeight; | |
} else { | |
console.error("Error: Image dimensions not available."); | |
return 1; // Default to 1:1 aspect ratio in case of errors | |
} | |
} | |
// Attach event listeners to navigation buttons | |
document.querySelector('.nav-left').addEventListener('click', function () { | |
navigate(-1); // Navigate left | |
}); | |
document.querySelector('.nav-right').addEventListener('click', function () { | |
navigate(1); // Navigate right | |
}); | |
document.querySelector('.load-images').addEventListener('click', function () { | |
loadImages(); // Initial load of images | |
}); | |
document.querySelector('#output-directory').addEventListener('change', function () { | |
loadImages(); | |
}); | |
document.addEventListener('keydown', function (event) { | |
if (event.key === 'ArrowLeft') { | |
navigate(-1); | |
// Add your custom logic here | |
} else if (event.key === 'ArrowRight') { | |
navigate(1); | |
// Add your custom logic here | |
} | |
}); |