le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
La compressione delle immagini gioca un ruolo cruciale in molti scenari applicativi, soprattutto quando il client carica le immagini. Le immagini originali sono spesso di grandi dimensioni. Il caricamento diretto non solo consuma molte risorse di larghezza di banda, ma può anche causare velocità di caricamento lente, compromettendo seriamente l'esperienza dell'utente. Pertanto, comprimere le immagini prima di caricarle sul server è diventata una misura di ottimizzazione chiave. Attraverso la compressione, la dimensione dei file immagine viene notevolmente ridotta, accelerando così la velocità di caricamento, migliorando l'efficienza e garantendo agli utenti un'esperienza fluida e senza problemi. Questa ottimizzazione è particolarmente importante quando le condizioni della rete sono scarse.
In breve, la compressione delle immagini può risolvere efficacemente la pressione sulla larghezza di banda e i problemi di tempo causati dal caricamento di file di grandi dimensioni. È un mezzo efficace per migliorare la velocità di risposta delle applicazioni e aumentare la soddisfazione dell'utente. Elabora in modo intelligente le immagini, rimuove i dati ridondanti e riduce notevolmente le dimensioni dei file mantenendo il più possibile la qualità visiva, rendendo il processo di caricamento delle immagini più veloce ed efficiente, ottimizzando così le prestazioni dell'intera applicazione.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<style>
div {
text-align: center;
}
input {
height: 50px;
line-height: 50px;
}
</style>
</head>
<body>
<input id="file" type="file" accept="image/*">
<div>压缩前的图片大小:<span id="beforeSize"></span>
<p><img id="before" /></p>
</div>
<div>压缩后的图片大小:<span id="afterSize"></span>
<p>
<img id="after" />
</p>
</div>
<script>
$("#file").change(function () {
const file = this.files[0];
$("#before").attr("src", URL.createObjectURL(file));
$("#before").css({
width: '500',
height: 'auto'
});
const fileSize = file.size / 1024;
$("#beforeSize").html(fileSize.toFixed(2) + " KB");
if (!file) return;
compressImage(file, 1, 0.7).then(base64 => {
$("#after").attr("src", base64);
$("#after").css({
width: '500',
height: 'auto'
});
const sizeInKB = (base64.length * 3 / 4) / 1024;
$("#afterSize").html(sizeInKB.toFixed(2) + " KB");
});
});
function compressImage(file, maxWidth, quality) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = function (e) {
const img = new Image();
img.onload = function () {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
resolve(canvas.toDataURL('image/jpeg', quality || 0.9));
};
img.src = e.target.result;
};
reader.readAsDataURL(file);
});
}
</script>
</body>
</html>