misskey icon indicating copy to clipboard operation
misskey copied to clipboard

Emojiの型に画像の縦横比を含めて欲しい

Open FineArchs opened this issue 1 month ago • 9 comments

Summary

misskeyのapiにおけるEmojiのスキーマの型

aliases: string[]
name: string
category: string | null
url: string
localOnly?: boolean
isSensitive?: boolean
roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]

ですが、ここに

width: number
height: number

もしくは

# width / height * 128
normalizedWidth: number

を追加して欲しいです。

Purpose

  • 要素のwidthをあらかじめ固定することでサイズ変化による再レンダリングを減らせる。
  • Playやウィジェットで絵文字サイズを考慮したUI構築ができる。

Do you want to implement this feature yourself?

  • [ ] Yes, I will implement this by myself and send a pull request

FineArchs avatar Dec 01 '25 04:12 FineArchs

自分個人としては、実装コストのわりに得られるメリットが小さく、かなり渋い印象を持ちました。

バックエンド観点

  • 現状のemojiテーブルにはwidth/heightに相当する情報が無い
  • 絵文字登録時の元ファイル(drive_file)への参照も保持していないため、サーバ側でサイズを取得することも難しい
  • 仮にwidth/heightカラムを追加しても、既存データを埋めるには全件の画像をダウンロードしてサイズを計測するツールが必要で、移行コストが非常に重い

フロントエンド観点

  • 「画像ロードによるサイズ変更」と「Vueコンポーネントの再レンダリング」は無関係な気がしてて、width/heightをDBに持ってもレンダリング回数は変わらないんじゃないかと…(レイアウトシフト低減という文脈であれば理解できます)

samunohito avatar Dec 01 '25 05:12 samunohito

既存データは諦めてそのままでも良さそう

syuilo avatar Dec 01 '25 06:12 syuilo

「画像ロードによるサイズ変更」と「Vueコンポーネントの再レンダリング」は無関係な気がしてて

どっちかというとサードパーティクライアントでネイティブにレンダリングするときの話かなと思った

syuilo avatar Dec 01 '25 06:12 syuilo

(サードパーティアプリの文脈無いような…それはさておき)

カラムとプロパティだけ用意して、レスポンスにサイズが含まれていればそれを使えるようにするのであれば…まあ… (既存データへのサイズ付与は運用時の責務とし、必要に応じて…)

samunohito avatar Dec 01 '25 06:12 samunohito

「画像ロードによるサイズ変更」と「Vueコンポーネントの再レンダリング」は無関係な気がしてて、width/heightをDBに持ってもレンダリング回数は変わらないんじゃないかと…(レイアウトシフト低減という文脈であれば理解できます)

レイアウトシフトの語を知らなかったので再レンダリングと表現しましたが、意図としてはレイアウトシフトを指していました。

FineArchs avatar Dec 01 '25 06:12 FineArchs

@syuilo やるやらだけ判断願います 🙏

samunohito avatar Dec 01 '25 07:12 samunohito

検討中

syuilo avatar Dec 01 '25 07:12 syuilo

縦横比があると、横に長い絵文字は絵文字ピッカーで2マス分使って見やすくできるなどの芸当が可能になる

(赤枠で囲ってあるようなものは正方形の枠に収めると見にくくなるが、横に2マス使えると見やすくできる)

Image

kakkokari-gtyih avatar Dec 01 '25 09:12 kakkokari-gtyih

related: #12469

Sayamame-beans avatar Dec 01 '25 10:12 Sayamame-beans