搜尋
首頁web前端css教學利用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刪除
兩個圖像和一個API:我們重新著色產品所需的一切兩個圖像和一個API:我們重新著色產品所需的一切Apr 15, 2025 am 11:27 AM

我最近找到了一種動態更新任何產品圖像的顏色的解決方案。因此,只有一種產品之一,我們可以以不同的方式對其進行著色以顯示

每周平台新聞:第三方代碼,被動混合內容,連接最慢的國家的影響每周平台新聞:第三方代碼,被動混合內容,連接最慢的國家的影響Apr 15, 2025 am 11:19 AM

在本週的綜述中,燈塔在第三方腳本上闡明了燈光,不安全的資源將在安全站點上被阻止,許多國家連接速度

託管您自己的非JavaScript分析的選項託管您自己的非JavaScript分析的選項Apr 15, 2025 am 11:09 AM

有很多分析平台可幫助您跟踪網站上的訪問者和使用數據。也許最著名的是Google Analytics(廣泛使用)

它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭Apr 15, 2025 am 11:01 AM

該文檔負責人可能不是網站上最迷人的部分,但是其中所處的內容對於您的網站的成功也一樣重要

JavaScript中的Super()是什麼?JavaScript中的Super()是什麼?Apr 15, 2025 am 10:59 AM

當您看到一些稱為super()的JavaScript時,在子類中,您會使用super()調用其父母的構造函數和超級。訪問它

比較不同類型的本機JavaScript彈出窗口比較不同類型的本機JavaScript彈出窗口Apr 15, 2025 am 10:48 AM

JavaScript具有各種內置彈出API,它們顯示用於用戶交互的特殊UI。著名:

為什麼可訪問的網站如此難以構建?為什麼可訪問的網站如此難以構建?Apr 15, 2025 am 10:45 AM

前幾天,我與一些前端人們聊天,講述了為什麼這麼多公司努力創建可訪問的網站。為什麼可訪問的網站如此艱難

'隱藏”屬性顯然很弱'隱藏”屬性顯然很弱Apr 15, 2025 am 10:43 AM

有一個HTML屬性,它可以正是您認為應該做的:

See all articles

熱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.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具