画像またはCSSを使用してPhotoshopのマルチレイヤーモードを複製する良い方法を知っている人はいますか?
私は、サムネイルの上にマウスを重ねると色がオーバーレイされるプロジェクトに取り組んでいますが、デザイナーはレイヤーセットを使用して乗算し、Web上でそれを作成する方法がわかりません。
私が思いついた最高のことは、rgbaまたは透明pngを使用することですが、それでも正しく見えません。
これを行うために導入された新しいCSSプロパティがあります。それらはblend-mode
とbackground-blend-mode
です。
現在、これらは非常に新しく、現在Chrome Canary(実験的なWebブラウザー)&Webkit Nightlyでのみサポートされているため、どのような実稼働環境でも使用できません。
これらのプロパティは、Photoshopのブレンドモードとほぼ同じように動作するように設定されており、overlay
、screen
、lighten
などのさまざまなモードをこれらのプロパティの値として設定できます。 color-dodge
、そしてもちろんmultiply
..など。
blend-mode
は、このブレンド効果を適用するために画像を重ねて表示することを可能にします(コンテンツもおそらくこの時点でそれを示唆するものは聞いていません)。
background-blend-mode
は非常に似ていますが、実際の画像要素ではなく背景画像(background
またはbackground-image
を使用して設定)を対象としています。
EDIT:次のセクションは、ブラウザのサポートが拡大しているため、少し無関係になっています。このグラフをチェックして、このブラウザをサポートしているブラウザを確認してください: http://caniuse.com/#feat=css-backgroundblendmode
最新バージョンのChromeがコンピューターにインストールされている場合、ブラウザーでフラグを有効にすることで、これらのスタイルが実際に使用されていることを確認できます(これらをアドレスバーに挿入するだけです:)
chrome://flags/#enable-experimental-web-platform-features
chrome://flags/#enable-css-shaders
* note that the flags required for this might change at any time
それらの悪い男の子を有効にしてから、このフィドルをチェックしてください: http://jsfiddle.net/cqzJ5/(ブラウザでスタイルが適切に有効になっている場合、2つの画像シーンが水中のように見えるようにブレンドする必要があります)
この機能はほとんど完全に存在しないため、現時点ではこれは最も正当な答えではないかもしれませんが、現代のブラウザが近い将来これらのプロパティを採用し、この問題に対する本当に素晴らしく簡単な解決策を提供することを期待できます。
ブレンドモードとcssプロパティに関する追加の参考資料:
少しのSVGで簡単:
<svg width="200" height="200" viewBox="10 10 280 280">
<filter id="multiply">
<feBlend mode="multiply"/>
</filter>
<image id="kitten" x="0" y="0" width="300" height="300" xlink:href="http://placekitten.com/300" />
</svg>
そしていくつかのCSS:
#kitten:hover {
filter:url(#multiply);
}
記録のために、この男はそうするためのライブラリを開発しています。私はまだ研究をしている間にそれに入りましたが、まだ試していません。
24.pngで可能です-トリックを知っていれば。
イラストレーターでは、グラフィックを24.pngとしてエクスポートできますが、これは乗算のようには機能しないようです。
私は見つけました。
画像の上にz-index(ed)を追加すると、乗算のように機能します。
そのような能力は利用できません。さらに近い合成オプションは次のとおりです。
lighter
HTML5での合成モード<canvas>
(a * bではなくa + bであり、乗算とほぼ逆の効果があります)
min
またはsubtract
Compositor
は、IEのみでフィルターします。
どちらも実際的ではありません。
一般に、Photoshopコンプをレイヤーとしてエクスポートしようとするのではなく、単一の不透明な画像にレンダリングする必要があります。ロールオーバーの場合、2つの画像(通常の状態用、ホバリング用の画像)を作成し、CSS :hover
スタイルで異なる背景画像を選択します。または、プリロードが不要でHTTPリクエストを減らすため、両方の画像を1つにまとめてbackground-image
/background-position
は、各状態のその画像の右側部分を背景画像として表示します。 (「CSSスプライト」)
私は最近、OPが要求したことを正確に行う必要があったので、周りを検索しました。 Photoshopで透明なPNGを作成することで、乗算効果を複製する素晴らしい方法を見つけました。
Alt/Option + click
マスク自体。Cmd/Ctrl + i
貼り付けたレイヤーを反転します。opacity
を調整できます。すべてのクレジットは https://superuser.com/questions/381704/multiply-blending-mode-to-png からSojeongに送られます
これをチェックしてください: http://www.webdesign.org/photoshop/photoshop-basics/remove-white-using-channels.10545.html
これらの指示を使用して、白黒画像(私の場合はインク描画、白と黒のグレーで)を暗い背景(この場合は木材)に透かしを入れることに成功しました。 Adobeの実際の乗算フィルターとほとんど違いはありません。
Photoshopの手順を使用して、画像から白を削除し、透明な背景に黒とグレーのみを残しました。これをPNGに保存してCSS/HTMLで木材に置くと、乗算するよりもはるかに悪いように見えましたが、PNGの輝度を大幅に下げることで解決しました(以前は薄い灰色が目立ち、見苦しくなりました)。
一般に、Webの状況を再現したphotoshopで遊んでみることをお勧めします:単色の背景の上に半透明(特別なものなし)レイヤー。上記のようなチュートリアルでは、乗算またはその他の派手な効果を再現できる場合があります。
運が良いかどうかわからない。私の知る限り、高度なJavaScriptを統合しようとしても不可能です。