Iniziare
-
Installa il pacchetto
Terminal window npm i @capgo/capacitor-file-compressorTerminal window pnpm add @capgo/capacitor-file-compressorTerminal window yarn add @capgo/capacitor-file-compressorTerminal window bun add @capgo/capacitor-file-compressor -
Sincronizza con i progetti nativi
Terminal window npx cap syncTerminal window pnpm cap syncTerminal window yarn cap syncTerminal window bunx cap sync
Supporto Piattaforma
Section titled “Supporto Piattaforma”| Piattaforma | Formati Supportati | Note |
|---|---|---|
| iOS | JPEG | Solo compressione JPEG supportata |
| Android | JPEG, WebP | Entrambi i formati completamente supportati |
| Web | JPEG, WebP | Compressione basata su Canvas API |
Nota: I metadati EXIF vengono rimossi durante la compressione su tutte le piattaforme.
Utilizzo
Section titled “Utilizzo”Importa il plugin e comprimi le immagini:
import { FileCompressor } from '@capgo/capacitor-file-compressor';
// Compress an imageconst compressImage = async () => { const result = await FileCompressor.compressImage({ source: 'file:///path/to/image.jpg', quality: 0.8, width: 1920, height: 1080 });
console.log('Compressed image path:', result.path); console.log('Original size:', result.originalSize); console.log('Compressed size:', result.size);};Riferimento API
Section titled “Riferimento API”compressImage(options)
Section titled “compressImage(options)”Comprime un file immagine con dimensioni e impostazioni di qualità specificate.
interface CompressImageOptions { source: string; // Path to the image file quality?: number; // 0.0 to 1.0 (default: 0.8) width?: number; // Target width in pixels height?: number; // Target height in pixels format?: 'jpeg' | '.webp'; // Output format}
interface CompressImageResult { path: string; // Path to compressed image size: number; // Compressed file size in bytes originalSize: number; // Original file size in bytes}
const result = await FileCompressor.compressImage(options);Note Importanti:
- I metadati EXIF vengono rimossi durante la compressione su tutte le piattaforme
- Le proporzioni vengono mantenute automaticamente se viene fornita solo una dimensione
- I file compressi vengono salvati in directory temporanee sulle piattaforme native
getPluginVersion()
Section titled “getPluginVersion()”Ottieni la versione del plugin nativo.
const { version } = await FileCompressor.getPluginVersion();console.log('Plugin version:', version);Esempio Completo
Section titled “Esempio Completo”import { FileCompressor } from '@capgo/capacitor-file-compressor';import { Camera } from '@capacitor/camera';
export class ImageCompressionService { async captureAndCompress() { try { // Take a photo const photo = await Camera.getPhoto({ quality: 100, allowEditing: false, resultType: 'uri' });
if (!photo.path) { throw new Error('No image path'); }
// Compress the photo const compressed = await FileCompressor.compressImage({ source: photo.path, quality: 0.7, width: 1920, height: 1080, format: 'jpeg' });
console.log(`Compression ratio: ${ ((1 - compressed.size / compressed.originalSize) * 100).toFixed(1) }%`);
return compressed.path; } catch (error) { console.error('Compression failed:', error); throw error; } }
async batchCompress(imagePaths: string[]) { const results = [];
for (const path of imagePaths) { try { const result = await FileCompressor.compressImage({ source: path, quality: 0.8, width: 1280 }); results.push(result); } catch (error) { console.error(`Failed to compress ${path}:`, error); } }
return results; }}Migliori Pratiche
Section titled “Migliori Pratiche”- Impostazioni di Qualità: Inizia con qualità 0.8 per un buon equilibrio tra dimensione del file e qualità dell’immagine
- Dimensioni di Ridimensionamento: Specifica le dimensioni solo quando necessario - le proporzioni vengono preservate automaticamente
- Selezione Formato: Usa JPEG per foto e WebP per migliore compressione (solo Android/Web)
- Gestione Errori: Racchiudi sempre le chiamate di compressione in blocchi try-catch
- Pulizia: Ricorda di pulire i file temporanei dopo l’uso
Risoluzione Problemi
Section titled “Risoluzione Problemi”Problemi Comuni
Section titled “Problemi Comuni”L’immagine non si comprime: Assicurati che il percorso sorgente sia valido e accessibile Memoria insufficiente: Riduci le dimensioni target o comprimi le immagini una alla volta Formato non supportato: Controlla la tabella di supporto piattaforma sopra