Webアプリでアップロード時のファイル形式を制限する理由


画像表示機能

これはHTML仕様を策定しているW3C、W3Cの仕様に準拠したレンダリングエンジンを用いたブラウザ側の仕様。

何故、ブラウザの仕様をアプリの仕様とするの?

静的に保存された画像を表示するだけであれば、仕様に入れる必要はないです。動作環境で制限すればいいだけ。

責務を考えず、曖昧な仕様決めをしている現場によくあることなので「何故?」は必要。

再エンコーディングが必要だから

アプリの仕様でサムネイルを作成する必要がある場合、何らかのライブラリを使って再エンコードしなければならず、画像形式が大きく関係する。
広くサポートしたい場合、多くのライブラリに対応するコードを書かなければならない。

「何故、再エンコーディングが必要か」と言えば、ストレージの容量だったり、データ転送量などの都合。
回線速度が高速化したり、W3Cの仕様が変わっていくと、再エンコードの必要がなくなるかもしれないので、そこは留意しておく。

一方、再エンコーディングなどを必要としないアプリが理由なく制限をかけるのは愚の骨頂で、デザインセンスが欠如していると思う。今一度、責務について見直した方が良い。

AI学習データとして使いたいから

AIの入力データとして使う場合、制限する必要がある。
AIは学習フェーズで特徴を捉えてデータの意味を認識する。
第3次ブームのAIにおける「データの意味を認識する」は、入力データに基づいて各ニューロンの重みを変えていくことなので、適切なデータの選定は大切。

第3次ブームのAIは勝手に好ましい学習をしてくれるようなものではないので、エラー率を下げるために「入力データに対する正解はこれです」というのを調整していく必要がある。
得体のしれないデータをノイズかどうか判断し、適切に学習データとして利用するのは困難。