ウェブサイトの画像にグレー効果を加える3つの方法

ウェブサイトの画像にグレー効果を加える3つの方法
私はグレースケールの画像の方が芸術的に見えると思うので、いつもグレースケールの画像を好んで使っています。 Photoshop などの多くの画像エディタでは、カラー画像を簡単にグレースケールに変換できます。色の深度や色相を調整するオプションもあります。残念ながら、ブラウザの違いにより、この効果を Web 上で実現するのは簡単ではありません。
1. CSSフィルター
CSS フィルター プロパティを使用するのが、おそらく画像をグレースケールに変換する最も簡単な方法です。歴史的に、Internet Explorer には、グレースケールなどのカスタム効果を適用するための、filter と呼ばれる独自の CSS プロパティがありました。
現在、フィルター プロパティは CSS3 仕様の一部であり、Firefox、Chrome、Safari などの一部のブラウザーでサポートされています。以前、画像をグレーにするだけでなく、セピアやぼかし効果にもできる Webkit フィルターについても説明しました。
次のCSSスタイルを追加すると、画像が灰色になります

コードをコピー
コードは次のとおりです。

画像 {
-webkit-filter: grayscale(1); /* Webkit */
フィルター: グレー; /* IE6-9 */
フィルター: グレースケール(1); /* W3C */
}

IE6-9 および Webkit ブラウザ (Chrome 18+、Safari 6.0+、Opera 15+) をサポート
(注: このコードは Firefox には影響しません。)
2. ジャバスクリプト
2 番目の方法は、JavaScript を使用することです。技術的には、IE6 以下も含め、JavaScript をサポートするすべてのブラウザは JavaScript をサポートしているはずです。

コードをコピー
コードは次のとおりです。

var imgObj = document.getElementById('js-image');
関数gray(imgObj) {
var キャンバス = document.createElement('キャンバス');
var キャンバスコンテキスト = キャンバス.getContext('2d');
var imgW = imgObj.width;
var imgH = imgObj.height;
キャンバスの幅 = imgW;
キャンバスの高さ = imgH;
キャンバスコンテキストで画像を描画します。
var imgPixels = canvasContext.getImageData(0, 0, imgW, imgH);
for(var y = 0; y < imgPixels.height; y++){
for(var x = 0; x < imgPixels.width; x++){
var i = (y * 4) * imgPixels.width + x * 4;
var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3;
imgPixels.data[i] = 平均;
imgPixels.data[i + 1] = 平均;
imgPixels.data[i + 2] = 平均;
}
}
canvasContext.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
canvas.toDataURL() を返します。
}
imgObj.src = グレー(imgObj);

3. テキスト
3番目の方法はSVGフィルターを使う方法です。SVGファイルを作成し、次のコードを記述して***.svgとして保存する必要があります。

コードをコピー
コードは次のとおりです。

<svg xmlns="http://www.w3.org/2000/svg">
<フィルター id="グレースケール">
<feColorMatrix type="matrix" values="0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"/>
</フィルター>
</svg>

次に、フィルタープロパティを使用して、SVGファイル内の要素のIDでSVGファイルに接続できます。

コードをコピー
コードは次のとおりです。

画像 {
フィルター: url('img/gray.svg#grayscale');
}

CSS ファイルに配置することもできます。例:

コードをコピー
コードは次のとおりです。

画像 {
フィルター: url('url("data:image/svg+xml;utf8,<svg%20xmlns='http://www.w3.org/2000/svg'><filter%20id='grayscale'><feColorMatrix%20type='matrix'%20values='0.3333%200.3333%200.3333%200.3333%200%200.3333%200.3333%200.3333%200%200%200%200%200%201%200'/></filter></svg>#grayscale");')
}

要約すると、ブラウザー間でグレースケール効果をサポートするには、上記の方法を次のコード スニペットと組み合わせて使用​​できます。このコードはFirefox 3.5以降、Opera 15以降、Safari、Chrome、IEをサポートします。

コードをコピー
コードは次のとおりです。

画像 {
-webkit-フィルター: グレースケール(100%);
-webkit-フィルター: グレースケール(1);
フィルター: グレースケール(100%)
フィルター: url('../img/gray.svg#grayscale');
フィルター: グレー;
}

上記のコードを JavaScript アプローチで活用し、JavaScript が無効になっている場合のフォールバックとして CSS フィルターを提供することもできます。このアイデアは、Modernizr の助けを借りて簡単に実装できます。

コードをコピー
コードは次のとおりです。

.no-js画像{
-webkit-フィルター: グレースケール(100%);
-webkit-フィルター: グレースケール(1);
フィルター: グレースケール(100%)
フィルター: url('../img/gray.svg#grayscale');
フィルター: グレー;
}

OK、ブラウザでクールな効果を確認できます。 !

<<:  HTML テキストフォーマットの簡単な例 (詳細な説明)

>>:  CSS でホバー ドロップダウン メニューを実装する方法

推薦する

MySQL Community Server 圧縮パッケージのインストールと設定方法

今日は、MySQL をインストールしたかったので、公式 Web サイトにアクセスして、MySQL の...

MySQL学習エンジンの詳細な説明、説明、権限

エンジン導入InnodbエンジンInnodb エンジンは、データベース ACID トランザクションを...

Linux Autofs 自動マウント サービスのインストールと展開のチュートリアル

目次1. autofs サービスの紹介2. Autofsのインストールと展開3. Autofs効果の...

MySQL クエリのソートとクエリ集計関数の使用法の分析

この記事では、例を使用して、MySQL クエリのソート関数とクエリ集計関数の使用方法を説明します。ご...

Linux仮想マシンをWiFiに接続する方法

生活の中で、インターネットはどこにでもあります。インターネットを通じてゲームをしたり、テレビ番組を見...

ElementUIはel-formフォームリセット機能ボタンを実装します

目次ビジネスシナリオ:効果のデモンストレーション:ビジネスシナリオ: el-form を使用する場合...

mysql5.6.zip形式の圧縮版インストールグラフィックチュートリアル

はじめに: MySQL は、スウェーデンの MySQL AB によって開発されたリレーショナル デー...

Linux ファイル/ディレクトリの権限と所有権の管理

1. ファイルの権限と所有権の概要1. アクセス権Read r: ファイルの内容を表示し、ディレクト...

JavaScript バブルソートの例

目次1. バブルソートとは何か2. 例を挙げるラウンド1:第2ラウンド:第3ラウンド:第4ラウンド:...

MySQLで置換関数を実装するためのいくつかの実用的なシナリオ

REPLACE構文REPLACE(String,from_str,to_str)つまり、String...

Centos7 サーバーで jar パッケージ プロジェクトを開始する最良の方法

序文Linux 上で jar パッケージを実行する方法は誰もが知っています。なぜ別々に話したいのでし...

SELINUXの動作原理の詳細な説明

1. はじめにSELinux が Linux にもたらす主な価値は、柔軟で構成可能な MAC メカニ...

PostgreSQL データベースにおける varchar、char、text の比較に関する簡単な説明

以下のように表示されます。名前説明する文字可変(n)、varchar(n)長さ制限あり、可変長文字(...

DockerはRedis5.0をビルドし、データをマウントします

目次1. 永続データの簡単なマウント2. DockerFileでイメージをビルドし、設定ファイルを指...

Dockerのネットワークモードと設定方法

1. Dockerネットワークモードdocker run が Docker コンテナを作成するときに...