((resolve) =>
+ canvas.toBlob(resolve, 'image/bmp')
+ );
+ return blob;
}
document.addEventListener('DOMContentLoaded', () => {
- const fileInput = document.getElementById('file-input') as HTMLInputElement;
- const dropZone = document.getElementById('drop-zone');
- const processBtn = document.getElementById('process-btn');
- const backBtn = document.getElementById('back-to-tools');
+ const fileInput = document.getElementById('file-input') as HTMLInputElement;
+ const dropZone = document.getElementById('drop-zone');
+ const processBtn = document.getElementById('process-btn');
+ const backBtn = document.getElementById('back-to-tools');
- if (backBtn) {
- backBtn.addEventListener('click', () => {
- window.location.href = import.meta.env.BASE_URL;
- });
+ if (backBtn) {
+ backBtn.addEventListener('click', () => {
+ window.location.href = import.meta.env.BASE_URL;
+ });
+ }
+
+ const handleFileSelect = (newFiles: FileList | null) => {
+ if (!newFiles || newFiles.length === 0) return;
+ const validFiles = Array.from(newFiles).filter(
+ (file) => file.type === 'application/pdf'
+ );
+
+ if (validFiles.length === 0) {
+ showAlert('Invalid File', 'Please upload a PDF file.');
+ return;
}
- const handleFileSelect = (newFiles: FileList | null) => {
- if (!newFiles || newFiles.length === 0) return;
- const validFiles = Array.from(newFiles).filter(
- (file) => file.type === 'application/pdf'
- );
+ files = [validFiles[0]];
+ updateUI();
+ };
- if (validFiles.length === 0) {
- showAlert('Invalid File', 'Please upload a PDF file.');
- return;
- }
+ if (fileInput && dropZone) {
+ fileInput.addEventListener('change', (e) => {
+ handleFileSelect((e.target as HTMLInputElement).files);
+ });
- files = [validFiles[0]];
- updateUI();
- };
+ dropZone.addEventListener('dragover', (e) => {
+ e.preventDefault();
+ dropZone.classList.add('bg-gray-700');
+ });
- if (fileInput && dropZone) {
- fileInput.addEventListener('change', (e) => {
- handleFileSelect((e.target as HTMLInputElement).files);
- });
+ dropZone.addEventListener('dragleave', (e) => {
+ e.preventDefault();
+ dropZone.classList.remove('bg-gray-700');
+ });
- dropZone.addEventListener('dragover', (e) => {
- e.preventDefault();
- dropZone.classList.add('bg-gray-700');
- });
+ dropZone.addEventListener('drop', (e) => {
+ e.preventDefault();
+ dropZone.classList.remove('bg-gray-700');
+ handleFileSelect(e.dataTransfer?.files ?? null);
+ });
- dropZone.addEventListener('dragleave', (e) => {
- e.preventDefault();
- dropZone.classList.remove('bg-gray-700');
- });
+ fileInput.addEventListener('click', () => {
+ fileInput.value = '';
+ });
+ }
- dropZone.addEventListener('drop', (e) => {
- e.preventDefault();
- dropZone.classList.remove('bg-gray-700');
- handleFileSelect(e.dataTransfer?.files ?? null);
- });
-
- fileInput.addEventListener('click', () => {
- fileInput.value = '';
- });
- }
-
- if (processBtn) {
- processBtn.addEventListener('click', convert);
- }
+ if (processBtn) {
+ processBtn.addEventListener('click', convert);
+ }
});
diff --git a/src/pages/pdf-to-bmp.html b/src/pages/pdf-to-bmp.html
index da12340..31c8c87 100644
--- a/src/pages/pdf-to-bmp.html
+++ b/src/pages/pdf-to-bmp.html
@@ -160,7 +160,7 @@