狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

blurify.js - 一款小巧的圖片高斯模糊 JavaScript 庫

admin
2024年10月12日 10:42 本文熱度 555

一款小巧的高斯模糊 JavaScript 庫—— blurify.js。這個小工具能讓你的網頁圖片擁有高斯模糊效果,提升設計的層次感和美觀度

https://github.com/dabanlee/blurify

在開始之前,我們先來聊聊高斯模糊。高斯模糊,也稱為高斯平滑,是一種常用的圖像處理技術,通過模糊圖片中的像素點,減少細節,來達到一種朦朧的效果。

Blurify.js 是什么?

讓我們來了解一下 blurify.js。它是一個小巧的高斯模糊庫,大小只有約 2KB。它提供了豐富的選項,可以讓我們輕松實現圖片的高斯模糊效果。而且,它的使用非常簡單,只需要通過 npm 進行安裝即可。

npm i blurify

blurify.js 提供了一個 blurify 函數,我們可以通過傳遞不同的參數來定制模糊效果。

其中,最常用的三個參數分別是 imagesblur 和 mode

  • images:表示需要進行模糊處理的目標元素。我們可以通過 CSS 選擇器來選取元素,例如 document.querySelectorAll('.blurify')

  • blur:表示模糊的程度,默認值為 6。數值越大,模糊效果越明顯。

  • mode:表示模糊的模式,有三種選項,分別是 csscanvas 和 auto

    • css 模式使用 CSS 的 filter 屬性進行模糊,

    • canvas 模式使用 canvas 導出 base64 格式的圖片,

    • auto 模式會首先嘗試使用 css 模式,如果不可行,則自動切換到 canvas 模式。

了解了這些基本用法后,我們就可以開始編寫代碼來實現高斯模糊效果了。

基本用法

<div class="box">
      <img src="./images/images1.jpg" class="img">
      <span> ==> </span>
      <img data-src="./images/images1.jpg" class="img1">
 </div>
//  下載源碼到 lib 文件夾中
import blurify from "./lib/blurify.es.js";
blurify({
  imagesdocument.getElementsByClassName('img1'),
  blur6,
  mode'auto' 
})

實現效果如下:

源碼分析

因為篇幅原因,源碼就不貼出來了請公眾號自取。

源碼核心功能:

  • preload 函數用于異步預加載圖片,確保在執行后續操作前圖片已經加載完成。

  • cssSupport 函數用于檢測瀏覽器是否支持特定的CSS屬性

  • blurify 構造函數創建一個實例,該實例可以對圖片進行模糊處理。它支持兩種模糊模式:CSS和Canvas

  • useCSSMode 方法使用 CSS 的 filter 屬性來實現模糊效果,這通常是更高效的選擇,但如果瀏覽器不支持,則會回退到使用Canvas

  • useCanvasMode 方法通過Canvas API來實現模糊效果,它更通用,但可能不如CSS高效。

  • blurify 方法在 Canvas 上實現模糊效果,通過多次繪制帶有偏移的圖像來模擬模糊。

  • getDataURL 方法將模糊處理后的Canvas``轉換為圖片的數據URL,這樣可以直接在HTML中使用標簽顯示模糊后的圖片。

下面是 Blurify 源碼實現的方法樹。

blurify
├── 構造函數 (blurify)
│   ├── 參數 (options)
│   │   ├── 模糊半徑 (blur)
│   │   ├── 模式 (mode)
│   │   └── 圖片數組 (images)
│   ├── 實例變量
│   │   ├── blur
│   │   ├── mode
│   │   └── $els (圖片元素數組)
│   └── 方法
│       ├── useCSSMode()
│       ├── useCanvasMode()
│       └── blurify()
├── 方法 (preload)
│   ├── 作用
│   │   └── 預加載圖片
│   ├── 參數 (images)
│   ├── 返回對象
│   │   └── done() (設置加載完成回調)
│   └── 邏輯
│       ├── 創建Image對象
│       ├── 設置圖片源 (src)
│       └── 處理加載完成 (onload) 和錯誤 (onerror)
├── 方法 (cssSupport)
│   ├── 作用
│   │   └── 檢測CSS屬性支持
│   ├── 參數 (key, value)
│   └── 返回值
│       └── 布爾值 (是否支持)
└── 原型方法 (blurify.prototype)
    ├── useCSSMode()
    │   ├── 設置圖片的CSS模糊效果
    │   └── 遍歷圖片元素
    └── useCanvasMode()
        ├── 預加載圖片
        ├── 創建Canvas元素
        ├── 繪制圖片到Canvas
        ├── 應用模糊效果
        └── 轉換Canvas為數據URL

源碼獲取:公眾號回復“blurify.js”。

總結

總之,blurify.js 是一個非常有用的高斯模糊 JavaScript 庫。它小巧輕便,使用簡單,提供了豐富的選項,可以讓我們輕松實現圖片的高斯模糊效果。


該文章在 2024/10/12 10:42:07 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved