PNG画像をアップロードするとJPGに変換されてしまう
PNG形式の画像をWordPressの管理画面からアップロードすると、勝手にJPEG変換される問題が起きました。今回、無事に解決できたので対処方法を書きます。
結果的に原因はEWWW Image Optimizerプラグインにあったのですが、オプションなど有効化してない人でも勝手に変換される少し厄介なものでした。
EWWW Image Optimizerを使用していない人でも、注意するべき部分は似ていると思うのでご確認下さい。
1から自分で調べると対処まで時間がかかると思いますので、記事を参考にしていただければサクッと解決していただければと思います。
勝手に形式変換していたのはEWWW Image Optimizerプラグイン
今回勝手にPNGからJPG変換していたのはEWWW Image Optimizerプラグインでした。
まずはEWWW Image Optimizer側のオプション設定を確認することをおすすめします。
変換タブで「PNGをPNGに変換」設定を確認
初期設定であれば基本的に変換設定はチェックがついてないはずです。
もしチェックされているとオプションによって変換されている可能性があるため、チェックを外して下さい。
オプションを外しても解決できない際は次の対処法をご覧ください。
wp-config.phpにコード追記で自動変換を無効化する
これまでのアップデートによりPNGをJPGを勝手に変換される仕様に変更になっているようです。
こういう変換はサイト運用者側で行うべきだとは思うのですが、JPGによるメリットが大きいのでプラグイン側で変更を加えたと公式サイトで言及されていました。
公式サイトから引用(英語)
EWWW IO will convert any image from PNG to JPG during upload if the following conditions are met, regardless of the settings on the Convert tab:
https://wordpress.org/support/topic/ewww-converting-png-to-jpg-this-setting-is-unchecked/
1. The PNG image is over 300kb — that’s a good clue the image isn’t suited to be in the PNG format.
2. The PNG image does not have transparency, since JPG doesn’t support it.
3. Converting to JPG produces a smaller image.
If you really think your images should remain in the PNG format, you can add this line to your wp-config.php file:define( 'EWWW_IMAGE_OPTIMIZER_DISABLE_AUTOCONVERT', true );
If you aren’t the same person who requested support via the contact form, and you need further help, please use https://ewww.io/contact-us/
公式サイトから引用(翻訳)
- 300KBより大きいPNG形式ファイル。
- 透明な要素が含まれていないPNGファイル。JPGは透過をサポートしていないので。
- JPEGに変換することによってより小さいファイルサイズになるとき
PNGは透過できて、JPGは無理なようですね。透過ファイルを使用されている方はなお注意です。
対処方法としては書かれているようにwp-config.phpに下記のコードを挿入しましよう。
define( 'EWWW_IMAGE_OPTIMIZER_DISABLE_AUTOCONVERT', true );
設定ファイルの一番下に挿入でOKです。
追記の際の注意点としてはファイルのバックアップを取りましょう。
また、ファイルの書き込み権限がない場合もあるため一時的に変更しておきましょう。
EWWW Image Optimizerも使用しておらず、なぜか変換されるって場合は他に問題があるはずなのでお気軽にご相談くださいね。