PixelArtと画像レンダリングパラドックス
CSSはNiftyプロパティを提供します
信用:Lea、ゲームからの性格Cross Code
何がpixelartですか?
PixelArt写真を作成する方法です.ブラシストロークを使用するよりも、個々のピクセルを慎重に着色されます.それはあなたがわずか数百平方のタイルを与えられた場合、それらのモザイクを作るように求められているようだ.
しかし、ありがとう
を除いて、ちょっと待ってください.上の例のCSS指定はなぜですか
これは、ブラウザのサポートにパラドックスのビットがあることが判明
彼らが反対の特性を支持するクロムとFirefox notate
そうですね.クロームサポート
私が学んだことは、このパラドックスを解決することは、プロパティが異なる意味を持っているので、単に両方のプロパティを指定するのと同じくらい単純ではないということです.即ち、たとえ
これを解決するためには、仕様の異なるバージョン、実装についての議論、そして-
まあ、私はすでにすべてをやった!代わりに、3つの重要な質問に答えることによって発見したものを歩きます. なぜパラドックスがあるのか. 違いは何ですか どのようなCSS私はピクセル画像を使用する必要がありますか?どのような鮮明なエッジで画像については?
直接対話に巻き込まれることなく、正確な理由を特定するのは難しい
規則
実際には、このプロパティにもかかわらず、最初の2012年には、ほんの数ヶ月前に2021年2月に登場してimages specification 変化!さらに、それはその9年の歴史の上で周期的な変化を見ました.つまり、
CSS仕様とは
仕様は、CSSの特徴、それらがどのように使用されるべきか、そしてどのようにそれらがブラウザによって実装されなければならないかを詳述しているドキュメントのセットです.それは基本的にCSSが何であるかについての真実の源です、そして、何十年も前にその創始以来一定の発展においてありました.お気軽にお読みくださいCSS standardization process .
その結果、プロパティが異なる程度に実装されている、FirefoxとChromeで別のルートを取っている.そして、スペックがまだ議論中であるので、誰も完全な実装をしません.
最後に、Firefoxの開発
掴む
私はもともとCSS仕様から直接引用をペーストするつもりです;強調は加えました:
画像がスケーリングされると、コンピュータのいずれかをスケールアップしたり、縮小時に崩壊するものを選択して行方不明の詳細を埋める必要があります.それはトリッキーな、料理レシピを倍増のように、しかし、十分な成分を持っていない実現することができます.そして、イメージをスケーリングするための単一の正しい戦略はありません.そして、仕事をすることを意味するスケーリングアルゴリズムの多様性に至ります.
スケーリングアルゴリズムはギャップを埋める
それは、specは、その目的は
スケーリングアルゴリズムは最終的に選択されるが
それを知る
ピクセル化された
イメージは、可能な限りオリジナルのピクセル化された性質を保存する方法でスケーリングされます.
クリスプエッジ
イメージは、コントラストとエッジを維持する方法でスケーリングされ、それは滑らかな色をしないか、プロセスのイメージにぼかしを導入しません.
ピクセル化されたイメージのために、強調はピクセルにあります、しかし、鮮明なイメージのために、強調は端にあります.ここで重要な点は、ピクセルがエッジと同じではないことです!
The
私たちは、非整数の要素によってpixelart leaイメージをスケーリングすることによって違いを例証することができます.
スペックマンデートは何のアルゴリズムか
For
参考文献
ピクセル化は、ぼやけているが、鮮明なエッジはピクセル化を歪める. For For
の歴史と意味論を備えた
PixelArtのために、それは明白です
最大の互換性のために、アンデッドInternet Explorerのブラウザをサポートすることができます
そして、コントラストの高いイメージについてはどうですか?
クロムとサファリはサポートしない
PixelartゲームからleaのですCross Code そばRadical Fish Games
Can I Use - 現在のブラウザのサポート
CSS Images Module Level 3 - CSSイメージの仕様書の現在のエディタ
Chromium Issue - 追跡のクロムのsupprt
Mozilla Issue - Firefoxのサポートの追跡
Pixelated Github Issue - Specへの最近の更新の追跡 と私のウェブサイト上のいくつかの余分なものは、簡潔にこの記事からカット Timeline of image-rendering What changed in February 2021?
image-rendering
どのようにイメージのスケールに影響を与えることができます.通常、あなたが小さなイメージをとって、それをより大きくするとき、イメージはぼやけています.それは写真のためのちょっとokです、しかし、pixelartのために、影響はそうです...むしろ壊滅的.信用:Lea、ゲームからの性格Cross Code
何がpixelartですか?
PixelArt写真を作成する方法です.ブラシストロークを使用するよりも、個々のピクセルを慎重に着色されます.それはあなたがわずか数百平方のタイルを与えられた場合、それらのモザイクを作るように求められているようだ.
しかし、ありがとう
image-rendering
, それは彼らのピクセル化された自然を強調する方法で画像をアップグレードすることが可能です!あとでコードの2行だけ..pixelart {
/* This order matters! */
image-rendering: crisp-edges;
image-rendering: pixelated;
}
...ああ!それは幻想的に見える!を除いて、ちょっと待ってください.上の例のCSS指定はなぜですか
image-rendering
回と2つの異なる値で?何かの魚!逆説
これは、ブラウザのサポートにパラドックスのビットがあることが判明
image-rendering
. 乗り越えるCan I Use そして、我々は次の変を見ます.彼らが反対の特性を支持するクロムとFirefox notate
そうですね.クロームサポート
pixelated
ではなくcrisp-edges
, Firefoxサポートcrisp-edges
ではなくpixelated
. 両方のブラウザーをサポートするために、両方の値は上記の例で指定されなければなりませんでした.私が学んだことは、このパラドックスを解決することは、プロパティが異なる意味を持っているので、単に両方のプロパティを指定するのと同じくらい単純ではないということです.即ち、たとえ
crisp-edges
and pixelated
同じ結果を達成する、彼らは別のことを意味します.これを解決するためには、仕様の異なるバージョン、実装についての議論、そして-
まあ、私はすでにすべてをやった!代わりに、3つの重要な質問に答えることによって発見したものを歩きます.
pixelated
and crisp-edges
? パラドックスとは何か
直接対話に巻き込まれることなく、正確な理由を特定するのは難しい
image-rendering
サポートがあります.ドキュメンテーション、議論、および定義(私のもの!)を掘り下げた後に.そこに1つの真実がそれを支えていました.規則
image-rendering
仕事が石でセットされないならば.実際には、このプロパティにもかかわらず、最初の2012年には、ほんの数ヶ月前に2021年2月に登場してimages specification 変化!さらに、それはその9年の歴史の上で周期的な変化を見ました.つまり、
image-rendering
は、少なくともいくつかのテストのための機能を実装するブラウザからのフィードバックから来ている積極的な議論を受けています.CSS仕様とは
仕様は、CSSの特徴、それらがどのように使用されるべきか、そしてどのようにそれらがブラウザによって実装されなければならないかを詳述しているドキュメントのセットです.それは基本的にCSSが何であるかについての真実の源です、そして、何十年も前にその創始以来一定の発展においてありました.お気軽にお読みくださいCSS standardization process .
その結果、プロパティが異なる程度に実装されている、FirefoxとChromeで別のルートを取っている.そして、スペックがまだ議論中であるので、誰も完全な実装をしません.
最後に、Firefoxの開発
crisp-edges
それは既に非標準のプロパティをサポートしているので-moz-crisp-edges
, それは同じことであるはずだった.クロムは実装されたpixelated
なぜなら、2014年の時点で、スペックpixelated
もっと簡単だった.ピクセル化または鮮明なエッジ?
掴む
pixelated
and crisp-edges
価値、それは重要なの目的を理解することですimage-rendering
プロパティ.画像レンダリングの意味論
私はもともとCSS仕様から直接引用をペーストするつもりです;強調は加えました:
The image-rendering property provides a hint to the user-agent about what aspects of an image are most important to preserve when the image is scaled...
画像がスケーリングされると、コンピュータのいずれかをスケールアップしたり、縮小時に崩壊するものを選択して行方不明の詳細を埋める必要があります.それはトリッキーな、料理レシピを倍増のように、しかし、十分な成分を持っていない実現することができます.そして、イメージをスケーリングするための単一の正しい戦略はありません.そして、仕事をすることを意味するスケーリングアルゴリズムの多様性に至ります.
スケーリングアルゴリズムはギャップを埋める
それは、specは、その目的は
image-rendering
はスケーリングアルゴリズムを選択することです.むしろ、ゴールは、イメージのどんな面が最も重要であるかを指定することです.例えば、我々がイメージを拡大するとき、我々は色ブレンドの方法について、あるいは、端を鋭く保つことについてより気にかけますか?答えに応じて、1つのアルゴリズムは、別のより良いかもしれません.スケーリングアルゴリズムは最終的に選択されるが
image-rendering
それは本当にイメージを扱う方法を知っているので、ブラウザの追加情報を提供することです!ピクセル化と鮮明なエッジの意味論
それを知る
image-rendering
すべてのイメージのどのような側面を識別することが重要です保存するには、どのように見ることができますpixelated
and crisp-edges
が定義されている.ピクセル化された
イメージは、可能な限りオリジナルのピクセル化された性質を保存する方法でスケーリングされます.
クリスプエッジ
イメージは、コントラストとエッジを維持する方法でスケーリングされ、それは滑らかな色をしないか、プロセスのイメージにぼかしを導入しません.
ピクセル化されたイメージのために、強調はピクセルにあります、しかし、鮮明なイメージのために、強調は端にあります.ここで重要な点は、ピクセルがエッジと同じではないことです!
The
pixelated
and crisp-edges
値は意味的に交換可能ではありません.私たちは、非整数の要素によってpixelart leaイメージをスケーリングすることによって違いを例証することができます.
スペックマンデートは何のアルゴリズムか
For
crisp-edges
, the nearest neighbor アルゴリズムを使用します.For pixelated
, 最も近い整数スケールにイメージを取るために、最近傍を使用します.その後、滑らかなスケーリングアルゴリズムは、画像の残りの方法を取る.参考文献
ピクセル化は、ぼやけているが、鮮明なエッジはピクセル化を歪める.
pixelated
, ピクセルは正方形でなければなりません、そして、その資産を保存する唯一の方法は拡大されたピクセルを重ねるのを許すことです.セル境界のぼけは、ピクセルが重なっている場所を表します.crisp-edges
, 色のコントラストが最も重要であるので、ぼけは許されません.したがって、pixelart画像のサイズを変更すると、正方形のセルではなく、ピクセルの美学を歪める.パラドックスの解決
の歴史と意味論を備えた
image-rendering
, 我々はパラドックスを解決することができます!PixelArtのために、それは明白です
pixelated
値を使用する必要がありますそれは、芸術の意味論と最も密接に一致するものです.しかし、Firefoxがまだサポートしていないのでpixelated
, 我々は、現在提供されているソリューションに戻ることができます.crisp-edges
, これは、最近傍アルゴリズムに解決します..pixelart {
image-rendering: crisp-edges;
image-rendering: pixelated;
}
事実pixelated
最後は非常に重要です!Firefoxが実装している未来を想像するならpixelated
, そして、crisp-edges
. 最も意味的に適切な値を最後の将来の証明とすることは解決策です.最大の互換性のために、アンデッドInternet Explorerのブラウザをサポートすることができます
-ms-interpolation-mode: nearest-neighbor
.そして、コントラストの高いイメージについてはどうですか?
クロムとサファリはサポートしない
crisp-edges
, 代わりにWebKitプロパティをサポートします-webkit-optimize-contrast
これは似たような意味を持つ.したがって、使用よりむしろpixelated
, もっとよく似たものを使う方がよいcrisp-edges
手段.crispy-art {
image-rendering: -webkit-optimize-contrast;
image-rendering: crisp-edges;
}
そして、それで、我々は最終的なデモで祝うことができます!資源
Can I Use - 現在のブラウザのサポート
image-rendering
CSS Images Module Level 3 - CSSイメージの仕様書の現在のエディタ
Chromium Issue - 追跡のクロムのsupprt
Mozilla Issue - Firefoxのサポートの追跡
Pixelated Github Issue - Specへの最近の更新の追跡
Reference
この問題について(PixelArtと画像レンダリングパラドックス), 我々は、より多くの情報をここで見つけました https://dev.to/auroratide/pixelart-and-the-image-rendering-paradox-2p8kテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol