Skip to content

一部の高解像度端末において端末画面のスクリーンショットが投稿できない #220

Open
@takayamaki

Description

発生している事象

iPad Pro 12.9(2048x2732)やiPhone XS Max(1242x2688)などの高解像度端末において、画面のスクリーンショットを投稿できない場合があります。

原因

クライアントではなくWebUIから投稿されるスクリーンショットはiOS、Android、Windowsの区別なく、png形式で/api/v1/mediaへPOSTされます。

その際、画像はいったんUploadComposeアクションを経由してresizeImage関数に渡り、ここでメタデータによる画像回転がある場合にメタデータによる回転を削除してデータそのものを回転させる処理や画像サイズが大きすぎる場合に縮小するなどの処理を行いアップロードされますが、その圧縮形式は元ファイルの形式に従うためスクリーンショットの場合はpng形式で送信されます。

その際、高解像度のpng形式画像はその画像傾向によりアップロードできる画像ファイルのサイズ上限である8MBを超えてしまう場合があります。

アイマストドンはImgConverterにより透明部分のないpng画像をjpg形式に変換して保存するようになっていますが、paperclipによる画像ファイルのサイズ上限のvalidationはImgConverterによる変換よりも前に行われているようで、そのために変換が試みられることなくエラーレスポンスが返答されています。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority highShould respond this quickly

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions