


Sie können CSS auch verwenden, um Bilder zu verarbeiten und in einen „Pixelstil' umzuwandeln!
Wie verwandle ich Bilder in einen „Pseudo-Pixel-Stil“? In diesem Artikel erfahren Sie, wie Sie Bilder mit CSS verarbeiten und in den „Pixelstil“ konvertieren.
Was ist Pixelstil?
Pixelstil
ist eine Art Verwendung von einfarbigen Pixelquadraten fester Größe
als Grundeinheit für die Erstellung, einschließlich, aber nicht beschränkt auf Malerei
, Ein Kunststil in verschiedenen Bereichen wie Architektur
, Spiele
und mehr.
Am bekanntesten ist natürlich die Pixelgrafik früher Videospiele
~像素风
是一种以固定大小纯色像素方块
作为基本单元,进行创作,包含但不限于绘画
、建筑
、游戏
更各个领域的一种美术风格。
其中最让人耳熟能详的,当然是早期电子游戏
的像素画面啦~
[早期红白机上"马里奥"的像素形象]
当然,早期电子游戏采用像素风
,实际上是一种历史的无奈,硬件条件的限制,让游戏开发者不得不选择这种变现力强
,性能开销
低的美术风格。
不过,时至今日
像素风在各个领域依然潮流,则被赋予了更多审美
和复古
上的意义。
思路分析
先看看本次要处理的“爱心图”的原图:
[爱心图]
要将一张这样的图片变成像素,我脑海里首先蹦出了第一个思路:
思路一:通过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'); }
效果图:
嘿嘿,现在就像那么回事了,不过因为被高斯

- [Das Pixelbild von „Mario“ auf dem frühen Famicom]
Der Pixelstil
ist eigentlich eine historische Hilflosigkeit. Die Einschränkungen der Hardwarebedingungen zwingen Spieleentwickler dazu, diesen Stil mit hoher Liquidität
und Leistungsaufwand
zu wählen. Dennoch heute
ist der Pixelstil in verschiedenen Bereichen immer noch beliebt und ihm wurden mehr ästhetische
und Retro
-Bedeutungen verliehen. 🎜Ideenanalyse🎜🎜Schauen Sie sich zunächst das Originalbild des „Liebesbildes“ an, das dieses Mal verarbeitet werden soll: 🎜
< img src ="https://img.php.cn/upload/image/128/187/946/164791698029272Sie können CSS auch verwenden, um Bilder zu verarbeiten und in einen „Pixelstil umzuwandeln!" title="164791698029272Sie können CSS auch verwenden, um Bilder zu verarbeiten und in einen „Pixelstil umzuwandeln!" alt="Sie können CSS auch verwenden, um Bilder zu verarbeiten und in einen „Pixelstil umzuwandeln!"/>
[Liebe Bild] 🎜🎜Um ein solches Bild in Pixel umzuwandeln, kam mir die erste Idee in den Sinn: 🎜
Idee 1: Leinwand ausschneiden und ausfüllen
🎜Leinwand zum Ausschneiden verwenden Teilen Sie das Bild in N * N-Blöcke auf, berechnen Sie dann die mittlere Farbe jedes Bereichs separat und füllen Sie ihn mit einer Volltonfarbe. Ja, diese Idee kann das Problem zweifellos schnell und flexibel lösen.Aber wäre in diesem Fall das
erste Date
meines Kollegen Ayang ohne die Verwendung von CSS nicht völlig ruiniert? ❌❌
Nein, nein! Ich muss meine Meinung ändern und CSS verwenden, um es zu implementieren! (Empfohlenes Lernen: CSS-Video-Tutorial) 🎜
Idee 2: Gaußscher Unschärfefilter mit großem Radius, um den Mittelwert zu erhalten
🎜Die Hauptidee ist wie folgt: 🎜- 🎜🎜Teilen Sie das Bild In N Divs unterteilt, enthält jedes Div einen Teil des Bildes. 🎜🎜🎜🎜Jedes Div wird durch einen CSS-Filter
verwischt (Gaußsche Unschärfe)
, wodurch visuell der Effekt erzielt wird, dass der Medianwert genommen und das Div gefüllt wird
. 🎜🎜der ich ein großes Herz dafür habe, meinen Kollegen zu helfen
. 🎜Es ist nicht schwer zu implementieren 🎜🎜: 🎜🎜🎜Zuerst verwenden wir 8*8, um a zu dividieren div into 64 Es besteht kein Zweifel am Rasterlayout. 🎜🎜
🎜
🎜🎜Code: 🎜.mask-item {
/* 以下为更改 */
filter: blur(8px) contrast(400%) saturate(400%);
}
Nach dem Login kopierenNach dem Login kopieren🎜🎜Dann legen wir einen herzförmigen Hintergrund für jedes .mask-item-Element fest🎜🎜
🎜Dann der Effekt ist Es wird so
, weil der Hintergrund jedes Bildes in der oberen linken Ecke beginnt, sodass es definitiv nicht den Erwartungen entspricht. 🎜🎜
🎜🎜Verbinden Als nächstes müssen wir diesen Satz in die js-Durchquerung einfügen: 🎜rrreee🎜Die Funktion dieser Codezeile besteht darin, jedem .mask-item-Element einen background-position
-Stil zuzuweisen und alle zu berechnen Die obere linke Ecke des Hintergrundbilds des .mask-item-Elements überlappt einen Koordinatenpunkt
. 🎜🎜Der Effekt ist wie im Bild dargestellt: 🎜🎜
🎜🎜3. Intervall und Gaußsche Unschärfe hinzufügen
Gemäß der Idee müssen wir nur den Abstand zu div
hinzufügen und dann Gaußsche Unschärfe
hinzufügen, um den Effekt zu erzielen.
Der Code lautet also wie folgt: 🎜rrreee🎜Aber der Effekt ist: 🎜🎜
🎜🎜Was genau ist schief gelaufen?
Gaußsche Unschärfe
wirkt sich tatsächlich auf Bereiche außerhalb der inneren Box
aus! ! 🎜🎜mask-image begrenzt den sichtbaren Bereich🎜🎜🎜Auf keinen Fall, um den Bereich des Gaußschen Unschärfeeffekts einzuschränken, kann ich nur mask-image verwenden.
Erstellen Sie zunächst eine 16*16 Pixel große reinschwarze All-Black.png-Datei.
Der Code lautet wie folgt: 🎜rrreee🎜Rendering: 🎜🎜
🎜🎜Hey, jetzt ist es so, aber wegen der Gaußschen Funktion
ist die Farbe viel heller. Es ist in Ordnung, passen Sie es einfach an. 🎜🎜🎜Passen Sie die Farbe an🎜🎜🎜Der Code lautet wie folgt:🎜.mask-item {
/* 以下为更改 */
filter: blur(8px) contrast(400%) saturate(400%);
}
Nach dem Login kopierenNach dem Login kopieren
大功告成!!
故事结局
万万没想到,同事阿洋还是没能
完成和产品妹妹小美的约会。
原因居然是:
产品妹妹觉得我写代码的样子过于靓仔,非要和我约会!

--全剧终--
(学习视频分享:web前端)
Das obige ist der detaillierte Inhalt vonSie können CSS auch verwenden, um Bilder zu verarbeiten und in einen „Pixelstil' umzuwandeln!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
.mask-item { /* 以下为更改 */ filter: blur(8px) contrast(400%) saturate(400%); }
Erstellen Sie zunächst eine 16*16 Pixel große reinschwarze All-Black.png-Datei.
Der Code lautet wie folgt: 🎜rrreee🎜Rendering: 🎜🎜

wegen der Gaußschen Funktion
ist die Farbe viel heller. Es ist in Ordnung, passen Sie es einfach an. 🎜🎜🎜Passen Sie die Farbe an🎜🎜🎜Der Code lautet wie folgt:🎜.mask-item { /* 以下为更改 */ filter: blur(8px) contrast(400%) saturate(400%); }
大功告成!!
故事结局
万万没想到,同事阿洋还是没能
完成和产品妹妹小美的约会。
原因居然是:产品妹妹觉得我写代码的样子过于靓仔,非要和我约会!
--全剧终--
(学习视频分享:web前端)
Das obige ist der detaillierte Inhalt vonSie können CSS auch verwenden, um Bilder zu verarbeiten und in einen „Pixelstil' umzuwandeln!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

HTML definiert die Webstruktur, CSS ist für Stil und Layout verantwortlich, und JavaScript ergibt eine dynamische Interaktion. Die drei erfüllen ihre Aufgaben in der Webentwicklung und erstellen gemeinsam eine farbenfrohe Website.

Es gibt zwei Möglichkeiten, eine Bootstrap -Split -Zeile zu erstellen: Verwenden des Tags, das eine horizontale Split -Linie erstellt. Verwenden Sie die CSS -Border -Eigenschaft, um benutzerdefinierte Style Split -Linien zu erstellen.

WebdevelopmentRelieSonHtml, CSS und JavaScript: 1) HtmlStructuresContent, 2) CSSstylesit und 3) JavaScriptaddssinteraktivität, Bildung von TheBasisofModerernwebexperiences.

Es gibt verschiedene Möglichkeiten, Bilder in Bootstrap einzufügen: Bilder direkt mit dem HTML -IMG -Tag einfügen. Mit der Bootstrap -Bildkomponente können Sie reaktionsschnelle Bilder und weitere Stile bereitstellen. Legen Sie die Bildgröße fest und verwenden Sie die IMG-Fluid-Klasse, um das Bild anpassungsfähig zu machen. Stellen Sie den Rand mit der img-beliebten Klasse ein. Stellen Sie die abgerundeten Ecken ein und verwenden Sie die IMG-Rund-Klasse. Setzen Sie den Schatten, verwenden Sie die Schattenklasse. Größen Sie die Größe und positionieren Sie das Bild im CSS -Stil. Verwenden Sie mit dem Hintergrundbild die CSS-Eigenschaft im Hintergrund.

Um das Bootstrap -Framework einzurichten, müssen Sie die folgenden Schritte befolgen: 1. Verweisen Sie die Bootstrap -Datei über CDN; 2. Laden Sie die Datei auf Ihrem eigenen Server herunter und hosten Sie sie. 3.. Fügen Sie die Bootstrap -Datei in HTML hinzu; 4. Kompilieren Sie Sass/weniger bei Bedarf; 5. Importieren Sie eine benutzerdefinierte Datei (optional). Sobald die Einrichtung abgeschlossen ist, können Sie die Grid -Systeme, -Komponenten und -stile von Bootstrap verwenden, um reaktionsschnelle Websites und Anwendungen zu erstellen.

Um die Größe der Elemente in Bootstrap anzupassen, können Sie die Dimensionsklasse verwenden, einschließlich: Einstellbreite:.

Wie benutze ich die Bootstrap -Taste? Führen Sie Bootstrap -CSS ein, um Schaltflächenelemente zu erstellen, und fügen Sie die Schaltfläche "Bootstrap" hinzu, um Schaltflächentext hinzuzufügen
