こんにちは、さち です。
最近、ツイッターに PNG 形式の画像を投稿しても
強制的に JPEG へ変換されるようになってしまいました。
ツイッターはもう PNG 画像は投稿できなくなったの…?
そこで、今回は
ツイッターに PNG 画像を投稿する方法を調べてみます。
透過 PNG なら大丈夫らしい
調べていると「TwI PNG」というサイトを見つけました。
ツイッターにも投稿できる PNG 画像を作ってくれるサイトです。
ここで作った PNG ならツイッターでも PNG のまま投稿できます。
このサイトが行っている処理は
「画像の左上1pxを不透明度99%にしてPNG32(透過あり)の状態にする」
ということみたいです。
処理前の画像は、PNG 以外(JPEG など)でも大丈夫です。
PNG で投稿したい画像がある場合は
「TwI PNG」を使って変換するのが便利ですね。
(古いブラウザだとサイトが正常に動かない可能性があるのでご注意を)
自分でも試してみる
「TwI PNG」の情報によると
半透明(不透明度が99%以下)のピクセルを持つ PNG なら
ツイッターでも PNG のまま投稿されるようです。
ただ、半透明のピクセルがなくても
32bit の PNG で保存したらいけたりしないかな?という疑問が。
一応、調べてみます。
- こんな画像を作りました。赤と白しか使っていません。
アンチエイリアスもないので本当の意味で2色だけです。
これを3種類のPNGとして保存します。 - 1つ目、24bit の PNG。
アルファチャンネル(不透明度の情報)を持たない PNG です。
分かりやすいように「24」と書いておきます。 - 2つ目、32bit の PNG。
アルファチャンネルを持つが、全ピクセルが不透明度100%の PNG です。
分かりやすいように「32」と書いておきます。 - 3つ目、不透明度99%のピクセルがある 32bit の PNG。
右上の 1px だけを不透明度99%にしてあります。
分かりやすいように「99」と書いておきます。 - 3種類の PNG のプロパティはこんな感じ。
「ビットの深さ」にちゃんと違いが出ています。 - 1つ目、24bit の PNG をツイッターに投稿。
やはり JPEG に変換されてしました。
色ムラやモスキートノイズが出てしまっています。 - 2つ目、32bit の PNG (全ピクセル不透明度100%)です。
予想は外れ、JPEG に変換されてしまいました。 - 3つ目、不透明度99%のピクセルがある 32bit の PNG です。
これは、ちゃんと PNG のまま投稿できています。
ご覧のとおり、PNG から JPEG への強制変換は
半透明ピクセルの有無が判断基準という結果になりました。
(アルファチャンネルの有無[24bit/32bit]は判断基準ではない)
ちなみに、試した後に知ったことですが
以前は、全ピクセル不透明度100% の 32bit PNG でも
JPEG 強制変換を回避できたみたいです。
後に再度仕様変更があり今の状態に至っています。
PNG はファイルサイズが重いから JPEG に変換するのでしょうけど
逆に今回の実験においては
32bit PNG (変換前)は1.76KB だったのに対して
JPEG (変換後)は 18.0KB で、約10倍も大きくなっていました。
少し手間が増えますが
ツイッターに PNG 画像をそのまま投稿するには
不透明度99%以下のピクセルを持たせるしかないようです。
コメント