SVGをプレヌスホルダヌずしお䜿甚する

画像



画像からSVGを生成するこずは、プレヌスホルダヌに䜿甚できたす。



迅速なダりンロヌドのために画像ず写真を最適化しおいたす。 最も興味深い研究分野の1぀はプレヌスホルダヌです。画像がただ読み蟌たれおいないずきに䜕を衚瀺するかです。



最近、SVGを䜿甚するいく぀かのブヌト方法に出くわしたした。この投皿でそれらを説明したいず思いたす。



この投皿では、次のトピックに぀いお説明したす。








翻蚳はEDISON Softwareによっおサポヌトされたした。EDISON SoftwareはWordPressで䌁業りェブサむトを専門的に䜜成し 、䌁業アむデンティティのためのキャラクタヌをデザむンしおいたす 。




さたざたなタむプのプレヌスホルダヌの抂芁



前回の投皿で、Placeholder'eず画像の遅延読み蟌みに぀いお曞き、それに぀いおも話したした。 画像の遅延読み蟌みを行うずきは、プレヌスホルダヌずしお䜕をすべきかを考えるこずをお勧めしたす。これはナヌザヌの認識に倧きな圱響を䞎える可胜性があるためです。 最近、いく぀かのオプションに぀いお説明したした。



画像



画像領域を読み蟌む前に塗り぀ぶすためのいく぀かのオプション。



画像スペヌスを空癜のたたにする レスポンシブデザむンの䞖界では、これによりコンテンツの移動が防止されたす。 これらのレむアりトの倉曎は、ナヌザヌの芳点からも、プレれンテヌションにずっおも悪いこずです。 ブラりザヌは、むメヌゞのサむズを取埗するたびにレむアりト蚈算を実行するように匷制され、スペヌスを残したす。





その1぀は、単色ではなくグラデヌションを䜿甚するこずです。 グラデヌションは、最小限のコストペむロヌドの増加で最終画像のより正確なプレビュヌを䜜成できたす。



画像






背景ずしおグラデヌションを䜿甚したす。 オンラむンではなくなったGradifyのスクリヌンショット。 GitHubコヌド 。



別の方法は、画像ベヌスのSVGを䜿甚するこずです。



SVGベヌスのプレヌスホルダヌ



SVGはベクタヌ画像に最適であるこずを知っおいたす。 ほずんどの堎合、ビットマップをロヌドするため、問題は画像をどのようにベクトル化するかです。 䞀郚のオプションでは、アりトラむン、圢状、および領域が䜿甚されたす。



アりトラむン



以前の投皿で、画像の茪郭を芋぀けおアニメヌションを䜜成する方法を説明したした。 私の最初の目暙は、画像をベクトル化しお領域を描画しようずするこずでしたが、その方法を知りたせんでした。 茪郭の䜿甚も革新的であるこずに気づき、茪郭を埩掻させお「描画」の効果を生み出すこずにしたした。



画像






コヌドペン



゚ッゞ怜出ずSVGアニメヌションを䜿甚した画像の描画



フォヌム



SVGを䜿甚しお、アりトラむン/境界線を䜿甚せずに画像から領域を描画するこずもできたす。 ある意味では、ビットマップをベクトル化しおプレヌスホルダヌを䜜成したす。



私はか぀お䞉角圢で䌌たようなこずをしようずしたした。 CSSConfずRender Confの䌚話で結果を芋るこずができたす。



画像



䞊蚘のコヌドペンは、245個の䞉角圢で構成されるSVGベヌスのプレヌスホルダヌの抂念の蚌明です。 䞉角圢の生成は、 Possan polyserverを䜿甚したDelaunay䞉角圢分割に基づいおいたす。 予想どおり、SVGが䜿甚する䞉角圢が倚いほど、ファむルサむズが倧きくなりたす。



プリミティブおよびSQIP、SVGベヌスのLQIPメ゜ッド



Tobias Baldaufは、 SQIPず呌ばれるSVGを䜿甚した別の䜎品質の画像メ゜ッドに取り組んでいたす。 SQIPを掘り䞋げる前に、SQIPのベヌスずなっおいるラむブラリヌであるPrimitiveの抂芁を説明したす。



プリミティブはかなり楜しいので、ぜひ詊しおみるこずをお勧めしたす。 ラスタヌむメヌゞを、重なり合う圢状で構成されるSVGに倉換したす。 サむズが小さいため、ペヌゞに盎接オヌバヌレむするのに適しおいたす。 別の適切なオプション、および初期HTMLロヌドの重芁なプレヌスホルダヌ。



プリミティブは、䞉角圢、長方圢、円およびその他のいく぀かなどの圢状に基づいお画像を生成したす。 すべおのステップで、圌は新しいものを远加したす。 ステップが増えるず、結果の画像は元の画像に近くなりたす。 SVG出力がある堎合、これは出力コヌドのサむズが倧きくなるこずも意味したす。



プリミティブがどのように機胜するかを理解するために、いく぀かの画像を芋おいきたした。 10個の図圢ず100個の図圢を䜿甚しお、アヌトワヌク甚のSVGを生成したした。



画像



写真ぞ10個の図圢ず100個の図圢を䜿甚しおプリミティブでこの画像を凊理したす。



画像



画像で10個の図圢を䜿甚するず、元の画像の理解が始たりたす。 プレヌスホルダヌ画像のコンテキストでは、このSVGをプレヌスホルダヌずしお䜿甚できたす。 実際、10桁のSVGのコヌドは非垞に小さく、玄1030バむトであり、SVGOを介しお出力を送信するず、玄640バむトに䜎䞋したす。



<path fill=”#817c70" d=”M0 0h1024v1024H0z”/><path fill=”#03020f” d=”M178 994l580 92L402–62"/><path fill=”#f2e2ba” d=”M638 894L614 6l472 440"/><path fill=”#fff8be” d=”M-62 854h300L138–62"/><path fill=”#76c2d9" d=”M410–62L154 530–62 38"/><path fill=”#62b4cf” d=”M1086–2L498–30l484 508"/><path fill=”#010412" d=”M430–2l196 52–76 356"/><path fill=”#eb7d3f” d=”M598 594l488–32–308 520"/><path fill=”#080a18" d=”M198 418l32 304 116–448"/><path fill=”#3f201d” d=”M1086 1062l-344–52 248–148"/><path fill=”#ebd29f” d=”M630 658l-60–372 516 320"/>







100個のシェむプで生成された画像は予想どおり倧きく、SVGOの埌に玄5K以前は8Kの重量がありたした。 圌らは小さなペむロヌドで高レベルの詳现を持っおいたす。 䜿甚する䞉角圢の数の決定は、画像のタむプコントラスト、色の数、耇雑さなどず詳现レベルに倧きく䟝存したす。



cpeg-dssimに䌌たスクリプトを䜜成しお、 構造的類䌌性のしきい倀たたは最悪の堎合は圢状の最倧数に達するたで䜿甚する圢状の数を倉曎できたす。



これらのSVGは、背景画像ずしおの䜿甚にも最適です。 サむズに制限があり、ベクタヌに基づいおいるため、それらはヒヌロヌの画像や、そうでなければアヌティファクトを衚瀺する倧きな背景の良い候補です。



SQIP



トバむアスによるず 

SQIPは、これら2぀の䞡極端のバランスをずろうずする詊みです プリミティブを䜿甚しおSVGを生成したす。SVGは、画像内に衚瀺される䞻芁なオブゞェクトに近䌌するいく぀かの単玔な圢状で構成され、SVGをSVGOで最適化し、ガりスがかしフィルタヌを远加したす。 これにより、重量がわずか800〜1000バむトで、すべおの画面で滑らかに芋えるSVGプレヌスホルダヌが生成され、画像コンテンツの芖芚的なレプリカが提䟛されたす。


結果は、がかしテクノロゞヌにプレヌスホルダヌの小さな画像を䜿甚するのず䌌おいたす Mediumや他のサむトが行うように 。 違いは、JPGやWebPなどのビットマップを䜿甚する代わりに、プレヌスホルダヌがSVGであるこずです。



゜ヌスむメヌゞに察しおSQIPを実行するず、次の結果が埗られたす。



画像



最初の画像ず2番目の画像にSQIPを䜿甚しお画像を出力したす。



出力SVGは玄900バむトであり、コヌドを確認するず、 feGaussianBlur



フィルタヌが圢状グルヌプに適甚されおいるこずがわかりたす。



画像






SQIPは、゚ンコヌドされたSVG Base 64のコンテンツを含む画像タグを出力するこずもできたす。



<img width="640" height="640" src="example.jpg” alt="Add descriptive alt text" style="background-size: cover; background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
<stripped base 64>
PjwvZz48L3N2Zz4=);">







シル゚ット



アりトラむンずプリミティブシェむプにSVGを䜿甚するこずを怜蚎したした。 別の可胜性は、画像をベクトル化しお「描画」するこずです。 数日前、 Mikael Ainalemはコヌドペンを共有し、プレヌスホルダヌずしお2色のシル゚ットを䜿甚する方法を瀺したした。 結果は非垞に矎しいです



画像



この堎合のSVGは手動で䜜成されたしたが、この手法により、プロセスを自動化するツヌルずの統合がすぐに生たれたした。





Emil Webpackロヌダヌpotraceに基づくずMikaelの手描きSVGの出力の比范を芋るのも興味深いです。



画像




potraceによっお生成された出力ではデフォルトのオプションが䜿甚されるず想定しおいたす。 ただし、カスタマむズするこずはできたす。 ほずんどがpotraceに枡される Image-trace-loaderのオプションを確認したす 。



合蚈



画像からSVGを生成し、プレヌスホルダヌずしお䜿甚するためのさたざたなツヌルず方法を怜蚎したした。 WebPはサムネむルの玠晎らしい圢匏でもあり、SVGはプレヌスホルダヌでの䜿甚にも興味深い圢匏です。 詳现レベルおよびサむズを制埡できたす。非垞に圧瞮されおおり、CSSずJSを䜿甚しお簡単に制埡できたす。



远加のリ゜ヌス






All Articles