先日、SQL文の初心者向け記事を書きました。
こちらの記事は、十数枚のイラストを描き、質の高くしようと努めた記事です。
しかし、色が抜けて落ちてしまうという問題が起きてしまいました。
以下のような事象です。
※画像の内容は全く異なりますが、あくまで色味です。
元の画像
圧縮後の画像
こちらの原因について、今回は掘り下げていきます。
結論としては、まだ解決していません。PNG形式でアップロードしていたことが原因のようです。
こちらの記事で、対策方法を紹介しています。
ゲームボーイみたいな感じになるのなんなん。
ある意味レアやけども。
原因その①:Wordpress の画像圧縮機能
どうやらWordpressには、画像を自動で圧縮する機能が備わっているようです。
この仕様がいつからなのかは不明ですが、長年改修がない機能のようです。
昔はコンピュータの性能にも限りがあったので、パフォーマンスを良くするための施策だと考えられます。
それにしても、圧縮率90%は流石にやり過ぎやろ……。
しかし、この圧縮機能が起因して画像の色抜けが起きているとは考えにくいです。
いくら画像が劣化しても、前のような色が抜け、ゲームボーイみたいな色質には流石にならないかと。
原因その②:プラグイン
「JetPack」というプラグインの設定を変更することで、圧縮させないようにすることができたという記事を見かけました。
しかし、私のWordpressにはJetPackというプラグインは導入しておりませんでした。
画像に関するプラグインも導入していなかったため、試しようがないという結論に。。。
対策
私が試した対策は、2つあります。
対策その①:色味を増やしたイラストを描く
- 添付しようとした画像以外の画像は、通常の色味で貼り付けることができた。
- 添付しようとした画像は、オレンジ、赤などの暖色の割合が多かった。
これらのことから、色味を増やして書けば良いのではと考え、他の画像同様に青色、黄色を増やして描いてみました。
……が、解決せず。
対策その②:functions.phpにコードを追加する
調べたところ、この対策が一番メジャーな方法のようです。
/wp-contents/themes/自分のテーマ/配下にあるファイル(のはず)です。
1 |
add_filter('jpeg_quality', function($arg){return 100;}); |
この1行をどこかに追加すれば良いようです。
注意点としては、このコードを追加した後に貼り付ける画像から適用されるということです。
戻り値にしている100が「非」圧縮率を表しています。
「100」だと圧縮しない、「0」に近いほど圧縮するということですね。
10年前の記事ですが、とても分かりやすくまとまっていました。
実際にどのくらい圧縮されるのか体験もできます。
しかし私の場合は、これでも解決しませんでした。
まとめ
単純に、圧縮率の問題じゃない気がします。
次にやるべきこととしては、
- 全プラグインを停止した状態で対策を試す。
- functions.phpの設定を変更して繰り返し確認する。
- WordPress次期アップデートを待つ。
- 画像の配置先(恐らく/wordpress/uploads/)の画像を確認
これらのことが挙げられるかと考えました。
こちらの記事で、アプリを使わずMacのみでPNG画像をJPG画像に変換する方法を紹介しています。(2020/05/17追記)
現在試している方法は、png拡張子をjpg拡張子に変更すること。それでダメなら、画像のMac純正プレビューアプリから「書き出し」>「JPEG」を選んでJPEG形式画像を作成し直して対応しています(2020/12/12追記)