利用CSS也可以處理圖片,轉為「像素風」!
如何把圖片變成「偽像素風」?本篇文章為大家介紹一下使用CSS處理圖片,將其轉為「像素風」的方法,希望對大家有幫助!
什麼是像素風?
像素風
是一種以固定大小純色像素方塊
作為基本單元,進行創作,包含但不限於繪畫
、建築
、遊戲
更各領域的一種美術風格。
其中最讓人耳熟能詳的,當然是早期電子遊戲
的像素畫面啦~
[早期紅白機上"馬裡奧"的像素形象]
當然,早期電子遊戲採用像素風
,實際上是一種歷史的無奈,硬體條件的限制,讓遊戲開發者不得不選擇這種變現力強
,性能開銷
低的美術風格。
不過,時至今日
像素風在各個領域依然潮流,則被賦予了更多美學
和復古
上的意義。
思路分析
先看看本次要處理的「愛心圖」的原圖:
[愛心圖]
要把一張這樣的圖片變成像素,我腦海裡首先蹦出了第一個想法:
想法一:透過canvas切割並填滿
使用canvas將圖片切割成N*N塊,然後每塊區域單獨計算取色彩中值,並將其填充為實色,沒錯,這個思路無疑是可以很快且靈活的解決問題的。
但這樣一來,沒使用到CSS,同事阿洋的第一次約會
豈不是就完全泡湯了?
❌❌
不行不行!我得換個思路,用CSS來實現! (建議學習:css視訊教學)
思路二:大半徑高斯模糊濾鏡來取中值
主體思路如下:
將圖片分成N個div,每個div都會有圖片的一部分。
每個div都透過css-filter來進行一次
blur(高斯模糊)
,視覺上達到取中值並填入div
的效果。
按這個思路,其實只有一個難點,如何讓每個div都持有圖片的一部分?
呵,這可難不倒我那顆幫助同事大心臟
。
實作
其實不難:
首先,我們用8*8將一個div分成64份,毫無疑問的grid佈局。
程式碼:
<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('.mask-group') for(let i = 0; i< 64; i++) { const itemEl = document.createElement('div') itemEl.className = 'mask-item' el.appendChild(itemEl) } } </script>
然後我們給每個.mask-item 元素設定一個心形背景
然後效果就變成了這樣
,因為每一張的背景都是從左上角開始的,因此肯定不符合預期。
接下來:我們需要在js的遍歷中插入這麼一句:
itemEl.style.backgroundPosition = `-${Math.floor(i%8) * 16}px -${Math.floor(i/8) * 16}px `
這行程式碼的作用,是給每一個.mask-item元素單獨賦予一個background-position
樣式,透過計算讓所有.mask-item元素的背景圖的左上角都重疊到了一個座標點上
。
效果如圖:
3. 增加間隔與高斯模糊
按照設想,我們只需要給div加上間隔
,再給上上高斯模糊
,就能達到效果了。
於是程式碼如下:
.mask-group { /* 以下为新增 */ grid-row-gap: 2px; grid-column-gap: 2px; } .mask-item { /* 以下为新增 */ filter: blur(8px) }
但是效果卻:
到底是哪裡出了問題? 高斯模糊
居然會作用到inner-box
以外的區域! !
- mask-image 限定視覺區域
沒辦法,為了限定高斯模糊的效果區域,我只能透過mask-image了。
先弄一張16*16像素的純黑all-black.png檔。
程式碼如下:
.mask-item { /* 以下为新增 */ -webkit-mask-image: url('./all-black.png'); mask-image: url('./all-black.png'); }
效果圖:
嘿嘿,現在就像那麼回事了,不過因為被高斯
的原因,顏色淡了不少,沒事,微調一下即可。
- 調整顏色
程式碼如下:
.mask-item { /* 以下为更改 */ filter: blur(8px) contrast(400%) saturate(400%); }
大功告成!!
故事结局
万万没想到,同事阿洋还是没能
完成和产品妹妹小美的约会。
原因居然是:产品妹妹觉得我写代码的样子过于靓仔,非要和我约会!
--全剧终--
(学习视频分享:web前端)
以上是利用CSS也可以處理圖片,轉為「像素風」!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

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

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

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

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

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

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

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

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