tianyun 2 سال پیش
والد
کامیت
990466f738
1فایلهای تغییر یافته به همراه16 افزوده شده و 2 حذف شده
  1. 16 2
      simple-demo/webp.html

+ 16 - 2
simple-demo/webp.html

@@ -13,13 +13,23 @@
 </head>
 <body>
 <h1>粘贴图片并展示</h1>
-<p>右键粘贴图片,本地图片或网络图片地址都可以,将被压缩为webp格式并展示<span id="status"></span></p>
+<p>右键粘贴图片,本地图片或网络图片地址都可以,将被压缩为webp格式并展示,压缩前:<span id="preSize"></span>, 压缩后:<span id="afterSize"></span><span id="status"></span></p>
 <div id="image-container">
     <img id="image-display" src="" alt="Image Display">
 </div>
 <script>
     const imageDisplay = document.getElementById("image-display");
 
+    function formatSize(sizeInBytes) {
+        const sizeInKb = sizeInBytes / 1024;
+        const sizeInMb = sizeInBytes / 1048576;
+        if (sizeInMb >= 1) {
+            return `${sizeInMb.toFixed(2)} MB`;
+        } else {
+            return `${sizeInKb.toFixed(2)} KB`;
+        }
+    }
+
     // 监听粘贴事件
     document.addEventListener("paste", (event) => {
         // 获取粘贴板数据
@@ -31,6 +41,7 @@
         // 查找图片数据
         for (let i = 0; i < items.length; i++) {
             if (items[i].type.indexOf("image") !== -1) {
+                document.getElementById("preSize").innerText = "";
                 // 获取图片文件或URL
                 const blob = items[i].getAsFile();
                 const imageUrl = URL.createObjectURL(blob);
@@ -38,6 +49,8 @@
                 // 将图片展示
                 imageDisplay.src = imageUrl;
                 document.getElementById("status").innerText = " 压缩中……";
+                document.getElementById("preSize").innerText = formatSize(blob.size);
+
 
                 // 压缩为webp格式
                 const image = new Image();
@@ -51,7 +64,8 @@
                         // 将压缩后的webp图片展示在页面上
                         const webpUrl = URL.createObjectURL(webpBlob);
                         imageDisplay.src = webpUrl;
-                        document.getElementById("status").innerText = " 已压缩☺";
+                        document.getElementById("status").innerText = " 已压缩 ☺";
+                        document.getElementById("afterSize").innerText = formatSize(webpBlob.size);
 
                     }, "image/webp", 0.8);
                 };