欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

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

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

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

https://github.com/dabanlee/blurify

在開始之前,我們先來聊聊高斯模糊。高斯模糊,也稱為高斯平滑,是一種常用的圖像處理技術(shù),通過模糊圖片中的像素點(diǎn),減少細(xì)節(jié),來達(dá)到一種朦朧的效果。

Blurify.js 是什么?

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

npm i blurify

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

其中,最常用的三個(gè)參數(shù)分別是 imagesblur 和 mode

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

  • blur:表示模糊的程度,默認(rèn)值為 6。數(shù)值越大,模糊效果越明顯。

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

    • css 模式使用 CSS 的 filter 屬性進(jìn)行模糊,

    • canvas 模式使用 canvas 導(dǎo)出 base64 格式的圖片,

    • auto 模式會(huì)首先嘗試使用 css 模式,如果不可行,則自動(dòng)切換到 canvas 模式。

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

基本用法

<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' 
})

實(shí)現(xiàn)效果如下:

源碼分析

因?yàn)槠颍创a就不貼出來了請(qǐng)公眾號(hào)自取。

源碼核心功能:

  • preload 函數(shù)用于異步預(yù)加載圖片,確保在執(zhí)行后續(xù)操作前圖片已經(jīng)加載完成。

  • cssSupport 函數(shù)用于檢測(cè)瀏覽器是否支持特定的CSS屬性

  • blurify 構(gòu)造函數(shù)創(chuàng)建一個(gè)實(shí)例,該實(shí)例可以對(duì)圖片進(jìn)行模糊處理。它支持兩種模糊模式:CSS和Canvas

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

  • useCanvasMode 方法通過Canvas API來實(shí)現(xiàn)模糊效果,它更通用,但可能不如CSS高效。

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

  • getDataURL 方法將模糊處理后的Canvas``轉(zhuǎn)換為圖片的數(shù)據(jù)URL,這樣可以直接在HTML中使用標(biāo)簽顯示模糊后的圖片。

下面是 Blurify 源碼實(shí)現(xiàn)的方法樹。

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

源碼獲取:公眾號(hào)回復(fù)“blurify.js”。

總結(jié)

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


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