Twitter が PNG 画像を JPEG に強制変換
今まで知らなかったのですが、Twitter でツイートに添付した PNG 画像は JPEG に強制的に変換されるようです。
JPEG への強制変換を回避するためには、PNG 画像にアルファチャネルを追加して、さらに、(半)透明なピクセルが1個以上含まれるようにしなければならないようです。
たとえば、 FF14 の Windows クライアントで「高品質」設定のスクリーンショットを撮ると、アルファチャネルを含まない PNG 画像として保存されるため、そのまま Twitter に up すると JPEG に変換されてしまいます。
せっかくキレイな SS が撮れるのに、もったいない!
SS 加工とかされている方は要注意です。
この問題への対策として、 JPEG への強制変換を避けるために PNG 画像を加工してくれるツールが公開されています。というか、このツールの紹介記事(窓の杜)でこの問題を知ったのでした。
- Twitterにアップする画像の劣化を防ぐ「Twitter向け画像最適化ツール」 - 窓の杜
http://forest.watch.impress.co.jp/docs/serial/netserv/1047319.html - Twitter向け画像最適化ツール - SDN Project
https://sdn-project.net/labo/twitter_image.html
このツールは、「左上1ピクセルを透明度99%にする事で実現しています」とのことです。すばらしいアイディアです。
作者の栃尾トメさんに感謝!
★2017/Mar/24 追記★
Windows デスクトップクライアントの OpenTween が最新版 1.3.7 でこの問題に対応してくれました! 感謝!!
https://ja.osdn.net/projects/opentween/
バージョンアップしてもデフォルトでは機能が OFF になっているので、「ファイル」メニューの「設定」ダイアログを開いて、「動作」の「投稿」のページで、「PNG画像の投稿時にJPEGへの変換を回避する(pic.twitter.com のみ)」にチェックを入れてください。
ちなみに対処方法は「Twitter向け画像最適化ツール」と同じです。
おまけ
実際に Twitter に PNG 画像を投稿してみて、挙動を確認してみました。 (2017/Mar/07)
実験その1。まず、アルファチャネルの無い PNG 画像をツイートしてみます。
https://twitter.com/quercus_maris/status/838803302661808128
上記ツイートに Twitter Web でアクセスして画像をダウンロードしようとすると、 JPEG 画像になっていることがわかります。
実験その2。 画像編集ソフト GIMP で単にアルファチャネルを追加しただけの PNG 画像を作って、ツイートしてみます。
https://twitter.com/quercus_maris/status/838804383513006080
上記ツイートにアクセスしてみると、これも JPEG 画像になってしまっています。
実験その3。左上隅の1ピクセルだけ切り取って透明にした PNG 画像を作って、ツイートしてみます。
https://twitter.com/quercus_maris/status/838806270173827072
上記ツイートにアクセスしてみると、今度は PNG 画像としてダウンロードできました!
以上の実験から、単にアルファチャネルを追加するだけではダメで、少なくとも1ピクセルは(半)透明でなければならないようです。
「Twitter向け画像最適化ツール」の手法はおそらく最善の手かと思われます。