Rumah hujung hadapan web tutorial js javascript实现图片压缩的代码

javascript实现图片压缩的代码

Aug 22, 2018 am 11:27 AM
Pemampatan imej

本篇文章给大家带来的内容是关于javascript实现图片压缩的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

废话不多说,直接上代码 返回的是一个base64的一个字符串

/**
 * 图片压缩,默认同比例压缩
 * @param {Object} path 
 *   pc端传入的路径可以为相对路径,但是在移动端上必须传入的路径是照相图片储存的绝对路径
 * @param {Object} obj
 *   obj 对象 有 width, height, quality(0-1)
 * @param {Object} callback
 *   回调函数有一个参数,base64的字符串数据
 */
function dealImage(path, obj, callback){
 var img = new Image();
 img.src = path;
 img.onload = function(){
  var that = this;
  // 默认按比例压缩
  var w = that.width,
   h = that.height,
   scale = w / h;
   w = obj.width || w;
   h = obj.height || (w / scale);
  var quality = 0.7;  // 默认图片质量为0.7
  //生成canvas
  var canvas = document.createElement('canvas');
  var ctx = canvas.getContext('2d');
  // 创建属性节点
  var anw = document.createAttribute("width");
  anw.nodeValue = w;
  var anh = document.createAttribute("height");
  anh.nodeValue = h;
  canvas.setAttributeNode(anw);
  canvas.setAttributeNode(anh); 
  ctx.drawImage(that, 0, 0, w, h);
  // 图像质量
  if(obj.quality && obj.quality <= 1 && obj.quality > 0){
   quality = obj.quality;
  }
  // quality值越小,所绘制出的图像越模糊
  var base64 = canvas.toDataURL(&#39;image/jpeg&#39;, quality );
  // 回调函数返回base64的值
  callback(base64);
 }
}
Salin selepas log masuk

调用方法

// 调用函数处理图片                 
dealImage("路径", {
// 注意:在pc端可以用绝对路径或相对路径,移动端最好用绝对路径(因为用take photo后的图片路径,我没有试成功(如果有人试成功了可以分享一下经验))
 width : 200
}, function(base){
//直接将获取到的base64的字符串,放到一个image标签中就可看到测试后的压缩之后的样式图了
 document.getElementById("transform").src = base;
 console.log("压缩后:" + base.length / 1024 + " " + base);    
})
Salin selepas log masuk

PS:主要思想就是获取到图片,利用H5 canvas技术进行图片数据化为 base64 的字符串,最后传到后台进行,后台将base64的字符串数据进行图像化储存。

相关推荐:

javascript实现省市联动的代码分享

javascript实现二叉树的代码介绍

Atas ialah kandungan terperinci javascript实现图片压缩的代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengendalikan pemampatan imej semasa menyimpan imej jauh menggunakan PHP? Bagaimana untuk mengendalikan pemampatan imej semasa menyimpan imej jauh menggunakan PHP? Jul 15, 2023 pm 03:57 PM

Bagaimana untuk mengendalikan pemampatan imej semasa menyimpan imej jauh menggunakan PHP? Dalam pembangunan sebenar, kita selalunya perlu mendapatkan imej daripada rangkaian dan menyimpannya ke pelayan tempatan. Walau bagaimanapun, sesetengah imej jauh mungkin terlalu besar, yang memerlukan kami memampatkannya untuk mengurangkan ruang storan dan meningkatkan kelajuan pemuatan. PHP menyediakan beberapa sambungan berkuasa untuk mengendalikan pemampatan imej, yang paling biasa digunakan ialah perpustakaan GD dan perpustakaan Imagick. Pustaka GD ialah perpustakaan pemprosesan imej popular yang menyediakan banyak fungsi untuk mencipta, mengedit dan menyimpan imej. Berikut adalah kegunaan

Cara mengendalikan muat naik imej dan pemampatan dalam pembangunan teknologi Vue Cara mengendalikan muat naik imej dan pemampatan dalam pembangunan teknologi Vue Oct 08, 2023 am 10:58 AM

Cara mengendalikan muat naik imej dan pemampatan dalam pembangunan teknologi Vue Dalam aplikasi web moden, muat naik imej adalah keperluan yang sangat biasa. Walau bagaimanapun, disebabkan penghantaran rangkaian dan sebab storan, memuat naik terus imej asal resolusi tinggi boleh mengakibatkan kelajuan muat naik yang perlahan dan pembaziran ruang storan yang besar. Oleh itu, memuat naik dan memampatkan imej adalah sangat penting. Dalam pembangunan teknologi Vue, kami boleh menggunakan beberapa penyelesaian sedia untuk mengendalikan muat naik dan pemampatan imej. Berikut akan memperkenalkan cara menggunakan vue-upload-comone

Bagaimana untuk melaksanakan fungsi pemampatan imej dalam uniapp Bagaimana untuk melaksanakan fungsi pemampatan imej dalam uniapp Jul 06, 2023 pm 05:16 PM

Bagaimana untuk melaksanakan fungsi pemampatan imej dalam uniapp 1. Pengenalan Dalam masyarakat moden, gambar telah menjadi bahagian yang sangat diperlukan dalam kehidupan seharian manusia. Walau bagaimanapun, dengan mempopularkan fungsi kamera telefon bimbit dan peningkatan piksel foto, saiz fail gambar juga semakin meningkat. Ini bukan sahaja akan menduduki memori telefon, tetapi juga menyebabkan imej mengambil masa yang lama untuk dimuatkan semasa penghantaran rangkaian. Oleh itu, pemampatan imej telah menjadi salah satu tugas penting untuk pembangun. 2. Pemampatan imej dalam uniapp uniapp ialah rangka kerja pembangunan merentas platform berdasarkan Vue.js

Kemahiran pembangunan Java didedahkan: melaksanakan fungsi pemampatan dan pemangkasan imej Kemahiran pembangunan Java didedahkan: melaksanakan fungsi pemampatan dan pemangkasan imej Nov 20, 2023 pm 03:27 PM

Java ialah bahasa pengaturcaraan yang digunakan secara meluas dalam bidang pembangunan perisian yang kaya dengan perpustakaan dan fungsi yang berkuasa boleh digunakan untuk membangunkan pelbagai aplikasi. Pemampatan dan pemangkasan imej adalah keperluan biasa dalam pembangunan aplikasi web dan mudah alih. Dalam artikel ini, kami akan mendedahkan beberapa teknik pembangunan Java untuk membantu pembangun melaksanakan fungsi pemampatan dan pemangkasan imej. Mula-mula, mari kita bincangkan pelaksanaan pemampatan imej. Dalam aplikasi web, gambar selalunya perlu dihantar melalui rangkaian. Jika imej terlalu besar, ia akan mengambil masa yang lebih lama untuk memuatkan dan menggunakan lebih lebar jalur. Oleh itu, kami

Gunakan uniapp untuk melaksanakan fungsi pemampatan imej Gunakan uniapp untuk melaksanakan fungsi pemampatan imej Nov 21, 2023 pm 06:36 PM

Menggunakan uniapp untuk merealisasikan fungsi pemampatan imej Dengan penambahbaikan fungsi kamera telefon mudah alih, kami sering mengambil sejumlah besar foto dalam kehidupan seharian kami. Walau bagaimanapun, foto resolusi tinggi ini menggunakan ruang storan pada telefon anda, menjadikannya perlahan dan mudah diisi. Untuk menyelesaikan masalah ini, kami boleh menggunakan teknologi yang berkaitan dalam uniapp untuk melaksanakan fungsi pemampatan imej, memampatkan imej kepada saiz fail yang lebih kecil dan mengekalkan piksel dan kualiti imej yang sesuai. Di bawah ini kami akan memperkenalkan secara terperinci cara melaksanakan fungsi pemampatan imej dalam uniapp. Langkah 1: Perkenalkan yang berkaitan

Cara menangani pemampatan dan pengoptimuman sumber imej dalam pembangunan teknologi Vue Cara menangani pemampatan dan pengoptimuman sumber imej dalam pembangunan teknologi Vue Oct 09, 2023 pm 08:27 PM

Cara mengendalikan pemampatan dan pengoptimuman sumber imej dalam pembangunan teknologi Vue Ringkasan: Dengan pembangunan berterusan pembangunan bahagian hadapan, imej dalam halaman web menduduki kedudukan yang semakin penting. Walau bagaimanapun, terlalu banyak sumber imej akan menyebabkan halaman dimuatkan dengan perlahan dan menjejaskan pengalaman pengguna. Untuk menyelesaikan masalah ini, artikel ini akan memperkenalkan cara menggunakan kaedah pemampatan dan pengoptimuman memproses sumber imej dalam pembangunan Vue, dan memberikan contoh kod khusus. 1. Pemampatan imej Pemampatan manual Pemampatan manual ialah kaedah yang paling biasa Anda boleh menggunakan pelbagai perisian pemprosesan imej, seperti Photoshop, S

Cara menggunakan Node untuk pemampatan imej Cara menggunakan Node untuk pemampatan imej Mar 20, 2023 pm 06:22 PM

Bagaimana untuk menggunakan Node untuk pemampatan imej? Artikel berikut menggunakan imej PNG sebagai contoh untuk memperkenalkan cara memampatkan imej saya harap ia akan membantu anda!

Bagaimana untuk mengoptimumkan pemampatan dan pemuatan imej dalam pembangunan PHP Bagaimana untuk mengoptimumkan pemampatan dan pemuatan imej dalam pembangunan PHP Oct 08, 2023 pm 06:18 PM

Cara mengoptimumkan pemampatan dan pemuatan imej dalam pembangunan PHP Ringkasan: Dalam laman web, imej ialah elemen penting yang membolehkan pengguna mempunyai pengalaman yang lebih intuitif dan menarik. Walau bagaimanapun, fail imej biasanya lebih besar dan lebih perlahan untuk dimuatkan, yang boleh menjejaskan prestasi tapak web dan pengalaman pengguna. Artikel ini akan memperkenalkan secara terperinci cara menggunakan pembangunan PHP untuk mengoptimumkan pemampatan dan pemuatan imej, dan memberikan contoh kod khusus. Sila ambil perhatian: Kod yang digunakan dalam artikel ini perlu digunakan dengan konfigurasi persekitaran pelayan dan modul pengembangan Langkah operasi khusus dan kaedah konfigurasi hendaklah berdasarkan situasi sebenar anda.

See all articles