JavaScript を使用せずに SVG を使用して畫像モザイク効果を?qū)g現(xiàn)するにはどうすればよいですか?以下の記事で詳しく解説していますので、お役に立てれば幸いです。
以前、公開アカウントで友人の Vajoy
による記事を転送しました - CSS を上手に使って畫像モザイクを様式化する 。
中心となるのは、CSS で興味深いプロパティ --image-rendering を使用することです。これは、畫像のスケーリング アルゴリズムを設(shè)定するために使用できます。 [推奨される學(xué)習(xí): css ビデオ チュートリアル ]
畫像レンダリングとは何ですか?
CSS プロパティ image-rendering は、畫像スケーリング アルゴリズムを設(shè)定するために使用されます。これは、要素自體、要素の他の屬性の畫像、および子要素に適用されます。
構(gòu)文は比較的単純です:
{ ????image-rendering:?auto;??????????????//?默認(rèn)值,使用雙線性(bilinear)算法進(jìn)行重新采樣(高質(zhì)量) ????image-rendering:?smooth;?????????//?使用能最大化圖像客觀觀感的算法來縮放圖像。讓照片更“平滑” ????image-rendering:?crisp-edges;??//?使用可有效保留對(duì)比度和圖像中的邊緣的算法來對(duì)圖像進(jìn)行縮放 ????image-rendering:?pixelated;??????//?放大圖像時(shí),?使用最近鄰居算法,因此,圖像看著像是由大塊像素組成的 }
その中でも、image-rendering:pixelated
はより興味深いもので、低精度の畫像をモザイク化できます。
たとえば、300px x 300px
の畫像があり、それを 30px x 30px
に変換するとします。
# 歪んだ畫像を 300px x 300px
image-rendering:pixelated、モザイク畫像を取得できます:
<img src="pic.jpeg?30x30" />
img?{ ????width:?300px; ????height:?300px; ????image-rendering:?pixelated }
##image-rendering:pixelated
モザイク効果を?qū)g現(xiàn)する際の制限<strong></strong>OK、それでは、なぜ最初に縮小してから拡大し、その後で
image-rendering:Pixelated を使用する必要があるのでしょうか?比較を行って、image-rendering:pixelated
を元の畫像に直接設(shè)定してみましょう: は畫像をさらにギザギザにするだけで、モザイク効果を直接生成しません。
image-rendering:Pixelated の説明とも一致します。
畫像を拡大する場(chǎng)合、最近傍アルゴリズムが使用されるため、畫像は次のように構(gòu)成されているように見えます。ピクセルの大きなブロック
拡大されぼやけた畫像に基づいてのみ、
image-rendering:pixelated を使用してモザイク畫像を取得できます。
CSS を使用して畫像を縮小してから拡大しますか?
CSS を使用して畫像を縮小してから拡大し、その後 image-rendering:pixelated
を使用できますか? #########いいえ。 WEB 上の寫真は Photoshop のスマート オブジェクトのようなものです。サイズは自由に変更できます (たとえば、何度も拡大してぼやけるなど)。ただし、最終的に寫真を元のサイズに戻すと、寫真は元のサイズに戻ります。元のサイズです。(歪みなしで)のように見えます。
そのため、元の畫像が 1 枚しかないときにぼやけた畫像を取得したい場(chǎng)合は、Canvas を使用する必要があり、少し面倒です。モザイク効果が欲しいだけです。
これは、SVG フィルターの複數(shù)のレイヤーを使用する、今日の主役である
SVG フィルターにつながります。実はモザイク効果フィルターはとても簡(jiǎn)単に実現(xiàn)できます。
そして、SVG フィルターは CSS フィルターを通じて簡(jiǎn)単に導(dǎo)入できます。 コードは実際には非常に単純です。SVG はフィルターを定義し、複數(shù)のフィルター層の重ね合わせ効果を使用してモザイク効果を?qū)g現(xiàn)します。その後、CSS フィルターを通じて導(dǎo)入され、任意の要素に適用できます:
<img src="任意無需縮放的原圖.png" alt=""> <svg> ??<filter id="pixelate" x="0" y="0"> ????<feFlood x="4" y="4" height="2" width="2"/> ????<feComposite width="8" height="8"/> ????<feTile result="a"/> ????<feComposite in="SourceGraphic" in2="a" operator="in"/> ????<feMorphology operator="dilate"radius="5"/> ??</filter> </svg>
img?{ ????width:?300px; ????height:?300px; ????filter:?url(#pixelate); }
このようにして、モザイク効果が得られます。
この効果を使用したいだけの場(chǎng)合は、全體を理解する必要さえありません。 SVG#SVGピクセル フィルター 以上がSVG を使用して畫像モザイク効果を?qū)g現(xiàn)する方法について話しましょうの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。 もちろん、モザイクを?qū)g裝するための CSS/SVG フィルターの制限は次のとおりです。ユーザーが元の畫像を表示できる場(chǎng)合、このメソッドをクライアント上で直接使用することは、元の畫像を直接公開することと同じです。
CSS/SVGフィルター方式はフロントエンドで畫像にモザイクをかけるため、元の畫像が必要となります。 もちろん、上記の 2 つの畫像モザイク技術(shù)を使用して、次のような単純なインタラクティブ効果を作成することもできます。上記のデモと SVG フィルターのすべてのコードは、次の 2 つのデモで見つけることができます:
CodePen デモ - 畫像レンダリング ピクセル化アプリケーション元のアドレス: https://www.cnblogs.com/coco1s/p/16134088.html

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Javascriptを使用せずにSVGを使用して畫像モザイク効果を?qū)g現(xiàn)するにはどうすればよいですか?以下の記事で詳しく解説していますので、お役に立てれば幸いです。

svg 畫像はプロジェクトで広く使用されていますが、次の記事では vue3 + vite で svg アイコンを使用する方法を紹介します。

svg は、畫像処理ソフトウェア、オンライン変換ツール、Python 畫像処理ライブラリを使用して jpg 形式に変換できます。詳細(xì)な紹介: 1. 畫像処理ソフトウェアには Adob??e Illustrator、Inkscape、GIMP が含まれます; 2. オンライン変換ツールには CloudConvert、Zamzar、Online Convert などが含まれます; 3. Python 畫像処理ライブラリなどがあります。

最新の Web フロントエンド開発の継続的な発展に伴い、実際の開発で広く使用されるテクノロジがますます増えています。その中でも、Vue.js は現(xiàn)在最も人気のある JavaScript フレームワークの 1 つであり、MVVM モデルに基づいており、豊富な API とコンポーネント ライブラリを提供し、応答性が高く、再利用可能で効率的な Web アプリケーションの開発を容易にします。 Vue.js3 の最新バージョンは、古いバージョンよりも優(yōu)れたパフォーマンスと豊富な機(jī)能を備えており、幅広い注目と研究を集めています。この記事では、

SVGを使用してファビコンにロゴを追加するにはどうすればよいですか?以下の記事ではSVGを使ってロゴ入りファビコンを生成する方法をご紹介しますので、ご參考になれば幸いです。

1. vite-plugin-svg-icons をインストールします。fast-glob 関連の依存関係もインストールする必要があります。そうでない場(chǎng)合、vite が npmrundev を?qū)g行すると、Cannotfindmodule'fast-glob' エラーが報(bào)告されます。npmifast-glob@3.x-Dnpmivite- plugin-svg. -icons@2.x-D 2. src/components/svgIcon の下に新しいコンポーネントindex.vueimport{computed}from'vue';cons を作成します。

1. svg-sprite-loadernpminstallsvg-sprite-loader--save-dev をインストールします。 2. src/components/svgIcon の下に新しいコンポーネントを作成します。index.vueimport{computed}from"@vue/reactivity";exportdefault{name:"baseSvgIcon" 、props:{iconClass:{type:String},className:{type:String},},setup

Canvas 要素に HTMLImageElements を描畫するには、drawImage() メソッドを使用します。このメソッドは、src="mySVG.svg" を使用して Image 変數(shù)を定義し、ロード時(shí)にdrawImage を使用します。 varmyImg=newImage();myImg.onload=function(){ ctx.drawImage(myImg,0,0);}img.src="http://www.example.com/files/sample.svg";
