Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HEIFサポート #6717

Open
tamaina opened this issue Sep 27, 2020 · 24 comments
Open

HEIFサポート #6717

tamaina opened this issue Sep 27, 2020 · 24 comments
Labels
✨Feature This adds/improves/enhances a feature 🔥high priority

Comments

@tamaina
Copy link
Contributor

tamaina commented Sep 27, 2020

Summary

iOSはheifなので

@tamaina tamaina added the ✨Feature This adds/improves/enhances a feature label Sep 27, 2020
@rinsuki
Copy link
Contributor

rinsuki commented Sep 28, 2020

  • ffmpegかimagemagickかsharp依存なのでmisskeyでやることではなさそう
  • Mobile Safari は HEIC 投げてこない(jpegに変換される)はずなので使われること少なそう
  • 特許だるそう

@acid-chicken
Copy link
Member

HEIF 自体は BMFF ベースのコンテナなのでまあといったところはあるけど、どの道 iOS のそれはコンテナ内に HEVC エンコードの画像が入ってるので、そこで特許問題でどん詰まる

@acid-chicken
Copy link
Member

Safari のみでブラウザネイティブのデコーダーに抜き出した HEVC のデータを渡すとかならまだ可能かもしれないが、それをするメリットはなさそう

@tamaina
Copy link
Contributor Author

tamaina commented Oct 1, 2020

そもそもSafariがjpegに直してくれることを初めて知った(((

特許面倒臭そうだし要らないわね

@tamaina tamaina closed this as completed Oct 1, 2020
@syuilo
Copy link
Member

syuilo commented Sep 20, 2023

Mobile Safari は HEIC 投げてこない(jpegに変換される)はずなので使われること少なそう

そんなことはなくなった

@tamaina
Copy link
Contributor Author

tamaina commented Sep 20, 2023

なんで2020/9時点でダメって話になったんだろう

sharp.jsがオプションでしか対応していなかった?

@tamaina
Copy link
Contributor Author

tamaina commented Sep 20, 2023

(browser-image-resizerは2022/2から着手なので影も形もない)

@acid-chicken
Copy link
Member

Mobile Safari は HEIC 投げてこない(jpegに変換される)はずなので使われること少なそう

そんなことはなくなった

マジで?

@syuilo
Copy link
Member

syuilo commented Sep 20, 2023

iOS17からHEICそのままアップロードされるようになった
TL見ててもHEICそのままで画像として表示されなくなっているケースが散見される

@acid-chicken
Copy link
Member

サポートするのは特許的に無理じゃないかな
input[type="file"]accept で抑制できないかしら

@acid-chicken
Copy link
Member

それが無理なら当の Safari 本人自体はライセンス的に問題なくファイルを触れるのでそこで変換するしかなさそう

@CyberRex0
Copy link
Contributor

iPadOS 17でJPEG変換がなくなったのを確認できていない
これって順次展開だったりするんだろうか(そんなことある?)

@tamaina
Copy link
Contributor Author

tamaina commented Sep 20, 2023

Live PhotosとかHDR動画とか限定の挙動だったりはしないかしら

@syuilo
Copy link
Member

syuilo commented Sep 20, 2023

あーHDR写真限定かも?

@syuilo
Copy link
Member

syuilo commented Sep 20, 2023

iPadOS 17でJPEG変換がなくなったのを確認できていない

iPadOSとiOSとでは違う可能性もある

@syuilo
Copy link
Member

syuilo commented Sep 22, 2023

input[type="file"] の accept で抑制できないかしら

これ誰か検証してみてほしい

@syuilo
Copy link
Member

syuilo commented Sep 22, 2023

でもホワイトリスト形式でしか指定できないのなら「HEIC以外のすべてのタイプ」を列挙するのは現実的ではなさそう?

@syuilo
Copy link
Member

syuilo commented Sep 22, 2023

こまこまのこまり

@syuilo
Copy link
Member

syuilo commented Sep 22, 2023

他の数多のWebサービスはどうするんだろうかこれ

@syuilo
Copy link
Member

syuilo commented Oct 8, 2023

解決策募集中

@anatawa12
Copy link
Member

既存に対する対処ではなくなりますが、HEIC見つけたときにオリジナルを上げるがonでも互換性のために変換するかを聞くとかですかね
この前提にはHEIF/HEVCがCanvasで扱える必要があるのでiosのCanvasでHEIF/HEVC扱えなかったらすみません。

@hilot06
Copy link

hilot06 commented Oct 8, 2023

HEICの判定は、inputにaddEventListenerして名前から拡張子切り出すか、inputのfilesが持ってるtypeプロパティ見てJS(TS)側で実装するっていうのはあります
ただどっちも拡張子しか見ない判断にはなってしまいます

@anatawa12
Copy link
Member

anatawa12 commented Oct 8, 2023

HEIFコンテナ自体に問題がないならHEIFコンテナパースするのも手ではあると思います

(多くの場合HEVCのような圧縮部分に特許が求められると認識してます)/

追記:
HEIF: コンテナ
HEVC: 圧縮形式
HEIC: HEVC in HEIFの拡張子
と認識してます

@Enn0717
Copy link

Enn0717 commented Oct 8, 2023

サポートするのは特許的に無理じゃないかな input[type="file"]accept で抑制できないかしら

HTMLのaccept属性でコントロールできないでしょうか?下記サイトにiOS17.0.3のiPhoneでアップロードを試してみたところ、

  • HEIFの画像
  • Livephoto形式の画像
  • 編集済みRAW画像

これらの画像は指定された形式(.jpeg/.png)でアップロードされることが確認できました。
ただし、例外として未編集のRAWファイルは.dng形式でアップロードするようです。
(画像とその他でアップロードボタンを分けるのも手かも?)
ご参考まで。

参考サイト:Mozilla developper HTML 属性: accept

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨Feature This adds/improves/enhances a feature 🔥high priority
Projects
Development

No branches or pull requests

8 participants