目錄
什麼是像素風?
思路分析
想法一:透過canvas切割並填滿
思路二:大半徑高斯模糊濾鏡來取中值
實作
故事结局
首頁 web前端 css教學 利用CSS也可以處理圖片,轉為「像素風」!

利用CSS也可以處理圖片,轉為「像素風」!

Mar 22, 2022 am 10:56 AM
css 處理圖片

如何把圖片變成「偽像素風」?本篇文章為大家介紹一下使用CSS處理圖片,將其轉為「像素風」的方法,希望對大家有幫助!

利用CSS也可以處理圖片,轉為「像素風」!

什麼是像素風?

像素風是一種以固定大小純色像素方塊作為基本單元,進行創作,包含但不限於繪畫建築遊戲更各領域的一種美術風格。
其中最讓人耳熟能詳的,當然是早期電子遊戲的像素畫面啦~

利用CSS也可以處理圖片,轉為「像素風」!

[早期紅白機上"馬裡奧"的像素形象]

當然,早期電子遊戲採用像素風,實際上是一種歷史的無奈,硬體條件的限制,讓遊戲開發者不得不選擇這種變現力強性能開銷低的美術風格。

不過,時至今日像素風在各個領域依然潮流,則被賦予了更多美學復古上的意義。

思路分析

先看看本次要處理的「愛心圖」的原圖:

利用CSS也可以處理圖片,轉為「像素風」!
[愛心圖]

要把一張這樣的圖片變成像素,我腦海裡首先蹦出了第一個想法:

想法一:透過canvas切割並填滿

使用canvas將圖片切割成N*N塊,然後每塊區域單獨計算取色彩中值,並將其填充為實色,沒錯,這個思路無疑是可以很快且靈活的解決問題的。
但這樣一來,沒使用到CSS,同事阿洋的第一次約會豈不是就完全泡湯了?
❌❌
不行不行!我得換個思路,用CSS來實現! (建議學習:css視訊教學

思路二:大半徑高斯模糊濾鏡來取中值

主體思路如下:

  • 將圖片分成N個div,每個div都會有圖片的一部分。

  • 每個div都透過css-filter來進行一次blur(高斯模糊),視覺上達到取中值並填入div的效果。

按這個思路,其實只有一個難點,如何讓每個div都持有圖片的一部分?

呵,這可難不倒我那顆幫助同事大心臟

實作

其實不難:

  • 首先,我們用8*8將一個div分成64份,毫無疑問的grid佈局。

利用CSS也可以處理圖片,轉為「像素風」!

程式碼:

<style>
    .mask-group {
      width: 128px;
      height: 128px;
      display: grid;
      grid-template-columns: repeat(8,1fr);
      grid-template-rows: repeat(8,1fr);
    }
</style>
<script>
  const el = document.querySelector(&#39;.mask-group&#39;)
    for(let i = 0; i< 64; i++) {
      const itemEl = document.createElement(&#39;div&#39;)
      itemEl.className = &#39;mask-item&#39;
      el.appendChild(itemEl)
    }
  }
</script>
登入後複製
  • 然後我們給每個.mask-item 元素設定一個心形背景

然後效果就變成了這樣,因為每一張的背景都是從左上角開始的,因此肯定不符合預期。

利用CSS也可以處理圖片,轉為「像素風」!

接下來:我們需要在js的遍歷中插入這麼一句:

itemEl.style.backgroundPosition = `-${Math.floor(i%8) * 16}px -${Math.floor(i/8) * 16}px `
登入後複製

這行程式碼的作用,是給每一個.mask-item元素單獨賦予一個background-position樣式,透過計算讓所有.mask-item元素的背景圖的左上角都重疊到了一個座標點上

效果如圖:

利用CSS也可以處理圖片,轉為「像素風」!

3. 增加間隔與高斯模糊 按照設想,我們只需要給div加上間隔,再給上上高斯模糊,就能達到效果了。 於是程式碼如下:

.mask-group {
  /* 以下为新增 */
  grid-row-gap: 2px;
  grid-column-gap: 2px;
}
.mask-item {
  /* 以下为新增 */
  filter: blur(8px)
}
登入後複製

但是效果卻:

利用CSS也可以處理圖片,轉為「像素風」!

到底是哪裡出了問題?
高斯模糊居然會作用到inner-box以外的區域! !

  1. mask-image 限定視覺區域

沒辦法,為了限定高斯模糊的效果區域,我只能透過mask-image了。
先弄一張16*16像素的純黑all-black.png檔。
程式碼如下:

.mask-item {
  /* 以下为新增 */
  -webkit-mask-image: url(&#39;./all-black.png&#39;);
  mask-image: url(&#39;./all-black.png&#39;);  
}
登入後複製

效果圖:

利用CSS也可以處理圖片,轉為「像素風」!

嘿嘿,現在就像那麼回事了,不過因為被高斯的原因,顏色淡了不少,沒事,微調一下即可。

  1. 調整顏色

程式碼如下:

.mask-item {
  /* 以下为更改 */
  filter: blur(8px) contrast(400%) saturate(400%);
}
登入後複製

利用CSS也可以處理圖片,轉為「像素風」!

大功告成!!

故事结局

万万没想到,同事阿洋还是没能完成和产品妹妹小美的约会。
原因居然是:
产品妹妹觉得我写代码的样子过于靓仔,非要和我约会!

利用CSS也可以處理圖片,轉為「像素風」!

--全剧终--

(学习视频分享:web前端

以上是利用CSS也可以處理圖片,轉為「像素風」!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue中怎麼用bootstrap vue中怎麼用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

HTML,CSS和JavaScript的角色:核心職責 HTML,CSS和JavaScript的角色:核心職責 Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

bootstrap怎麼寫分割線 bootstrap怎麼寫分割線 Apr 07, 2025 pm 03:12 PM

創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

bootstrap怎麼調整大小 bootstrap怎麼調整大小 Apr 07, 2025 pm 03:18 PM

要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-

bootstrap怎麼插入圖片 bootstrap怎麼插入圖片 Apr 07, 2025 pm 03:30 PM

在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

bootstrap怎麼設置框架 bootstrap怎麼設置框架 Apr 07, 2025 pm 03:27 PM

要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

bootstrap怎麼看日期 bootstrap怎麼看日期 Apr 07, 2025 pm 03:03 PM

答案:可以使用 Bootstrap 的日期選擇器組件在頁面中查看日期。步驟:引入 Bootstrap 框架。在 HTML 中創建日期選擇器輸入框。 Bootstrap 將自動為選擇器添加樣式。使用 JavaScript 獲取選定的日期。

bootstrap按鈕怎麼用 bootstrap按鈕怎麼用 Apr 07, 2025 pm 03:09 PM

如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

See all articles