今まで知らなかったのですが、Twitter でツイートに添付した PNG 画像は JPEG に強制的に変換されるようです。

JPEG への強制変換を回避するためには、PNG 画像にアルファチャネルを追加して、さらに、(半)透明なピクセルが1個以上含まれるようにしなければならないようです。

たとえば、 FF14 の Windows クライアントで「高品質」設定のスクリーンショットを撮ると、アルファチャネルを含まない PNG 画像として保存されるため、そのまま Twitter に up すると JPEG に変換されてしまいます。

せっかくキレイな SS が撮れるのに、もったいない!

SS 加工とかされている方は要注意です。

この問題への対策として、 JPEG への強制変換を避けるために PNG 画像を加工してくれるツールが公開されています。というか、このツールの紹介記事(窓の杜)でこの問題を知ったのでした。

このツールは、「左上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向け画像最適化ツール」の手法はおそらく最善の手かと思われます。