[[OGP]]には[[WebP]]を引き続き使うことを条件に、ファイル内の画像は[[AVIF]]にする。ネックだったコンバート速度が大きく改善され、[[macOS]]の[[Retinaディスプレイ]]対応により、ファイルサイズ削減の重要性が増したため。[[ImageMagick]]の `-quality` は `35` を推奨とする。 ## 経緯 以前に画像ファイルの[[AVIF]]化について提案したが、そのときは見送りになった。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" /> <span class="link-card-v2-site-name">Minerva</span> </div> <div class="link-card-v2-title"> 💿MIN-0037 画像ファイルにはAVIFを使う </div> <div class="link-card-v2-content">サイズの大きい画像にはコンバート時間に目をつぶってもコンバートする価値はあるが、一方でSlackなどのメジャーなツールで対応されていないければ、OGP画像が表示されなくなってしまい、ユーザーへ提供する価値が下がってしまう。そのリスクを払ってまでWebPから移行する価値はまだ無いとは判断した。</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/minerva-adr3.webp" /> <a data-href="💿MIN-0037 画像ファイルにはAVIFを使う" class="internal-link"></a> </div> %%[[💿MIN-0037 画像ファイルにはAVIFを使う]]%% しかし、最近[[Obsidian]]の利用環境が[[Windows]]から[[macOS]]に変わったこともあり、以下の点で見直してもいいのではと思った。 - [[macOS]]だと[[Retinaディスプレイ]]の考慮が必要になり、画像サイズが従来の4倍になる - 今まで以上に圧縮が大事 - [[MacBook Pro M4 Pro]]になったことで[[AVIF]]のコンバート速度がネックでなくなっている可能性がある ## 提案内容 [[OGP]]以外の画像ファイルには[[AVIF]]を使う。 ## 検討内容 ### 前回のデメリットに対する状況 [[AVIF]]の有用性自体は前回の[[ADR]]で十分に証明されている。そのため、ここでは以前のデメリットについてフォーカスする。 - `前回` **コンバートに時間がかかる** - `前回` [[WebP]]と比較して50~100倍くらい遅く、FullHDの[[JPEG]]だと10秒くらい - 試しに実行してみたところ **[[WebP]]とほぼ同じ速度でコンバートできた** - [[ImageMagick]]を使用 - `前回` **[[Windows]]のファイルエクスプローラーや[[Slack]]などよく使うツールでプレビューが表示されない** - `前回` [[主要ブラウザ]]に対応したからと言ってこれらに対応済というわけではない - `前回` たとえば[[Slack]]の場合、[[Slack]]での[[OGP]]画像が表示されない - [[OGP]]について - **[[Slack]]は引き続き対応されていなかった** - **[[Bluesky]]も対応されていなかった** - 他は未確認だが、この2つがメインなので割愛 [[OGP]]対応以外の点では問題なさそうなため、**[[OGP]]は[[WebP]]のまま** という条件つきならば問題なさそう。 ### 画像サイズ比較 今回も一応やってみる。特にスクリーンショットについて。 | 形式 | 品質 | サイズ | | -------- | ---- | ------ | | [[PNG]] | - | 1.1MB | | [[WebP]] | - | 212KB | | [[AVIF]] | 50 | 132KB | | [[AVIF]] | 25 | 59KB | 画像サイズは `3602x2252`。[[MacBook Pro M4 Pro]]のほぼほぼフルサイズ。 [[WebP]]と[[AVIF]](品質:25)の画像を並べてみる。 ![[obsidian-editor-work.webp|frame]] *Webp* ![[obsidian-editor-work-25.avif|frame]] *AVIF(品質:25)* 流石に[[AVIF]](品質:25)の方が、周囲に色がにじみ出ていたりと若干の違いはあるが、実用面で言うとどちらも大差はない。言われなければ『これ `-quality 25` だよね』とは分からない。 ただ、`-quality 35` にすると `-quality 75` との違いがほぼなかったので、35にするのがよさそう。 ### 他 - [[Retinaディスプレイ]]を意識しなければいけないのは、主にスクリーンショットの場合 - それが[[OGP]]になることはほぼないので、カバー画像のサイズが増えるリスクは低い - [[OGP]]の画像は基本的に[[ChatGPT]]に作ってもらっているので1920x1080未満 - イラスト画像では[[Retinaディスプレイ]]による差分はそこまで顕著でない - 顕著なのは**文字**