私はグレースケールの画像の方が芸術的に見えると思うので、いつもグレースケールの画像を好んで使っています。 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 でホバー ドロップダウン メニューを実装する方法
ElementUIページングコンポーネントPagination in Vueの使用は参考になります。...
今日、問題が発生しました: MySQL の insert into、update、delete ステ...
目次質問解決質問この問題には多くの理由があるようです。私の問題は、パラメータ付きのURLを更新できな...
/****************** * カーネルデバッグ技術 ****************...
CentOS7 のデフォルトのファイアウォールは iptables ではなく、firewalle で...
目次1. はじめに1.1 原則1.2 プロセス1.3 特徴1.4 githubアドレス2. テスト環...
目次順序1. 集中ルーティング2. ファイルディレクトリ3. CompileRouterを作成する4...
オールラウンドなシステム監視ツール dstat dstat は、vmstat、iostat、nets...
素敵なフリップログインと登録インターフェースを作成する序文最近、ネットワーク ディスクを構築しようと...
フレーム構造タグ <frameset></frameset>フレームを使用す...
コードは次のようになります。 <!DOCTYPE html> <html lang...
この記事では、例を使用して、MySQL インデックスがソートに与える影響を説明します。ご参考までに、...
1. 遷移属性の理解1. transition 属性は、次の 4 つの遷移プロパティを設定するために...
入力ボックスが小さい場合、内容を入力した後に、入力内容が拡大されたプロンプト ボックスを表示したいこ...
Linux システムでは、chmod コマンドと chown コマンドの両方を使用して権限を設定でき...