webコンテンツを徹底強化!WordPressサイト制作とプラグイン&テーマ情報・メンテ/エラー対応から、PHP/CSS/javascript、動画・音・イラスト等制作まで扱うコラム
マルチメディアコンテンツ制作読んどけ☆コラム

【PHP】GD・ImageFilterで、画像の色合いを変えてみる

      2021/02/23

【PHP】GD・ImageFilterで、画像の色合いを変えてみる

今回は、管理人がPHPプログラムについて学習していて、やってみた事柄を紹介いたします。 お題は『画像加工』。PHPでこういうことができるのは、実は最近知りました(笑)さっそく、コードや実際の画面、注意点などを見ていってみましょう。

通常は、画像加工ソフトでやることが多い(MediBang・Photoshopなど)

『実はPHPでも画像の色合い変更など、加工できる』というようなタイトルでしたが、通常は画像加工のソフトを使うことが多いと思います。 (画像はMediBang paint)一部分だけ加工みたいなのは専用ソフトのほうがよいかもです。たとえば、上記の写真で一部分だけ彩度を落とすみたいな加工をするには・・・

そのまま範囲指定する他、パーツを切り取ってレイヤーし、色相や彩度・明るさとかを変更とか。灰色にするには彩度をガッツリ下げます。

また、フォトショップでも簡単です。

現在では、スマホのアプリでもできますね。特にinstagramなどだと、フィルターの色合いがいい感じで雰囲気が出しやすいかと思います。

PHP GD・ImageFilterで、画像の色合いを変える方法

『範囲指定して色合い変更』みたいなのは画像加工ソフトで大丈夫ですが、ちょっと技術者っぽく(笑)、PHPのGD・ImageFilterの機能を使って、カンタンな画像加工をしてみたいと思います。ImageFilterは名前のとおり、画像にフィルターかける機能です。

事前にGDつかえるかチェックする(phpinfo関数)

まずは、PHPで画像加工ができるか調べたいと思います。管理人の使っているサーバーのPHP設定部分だけではわからなかったので、任意の場所に<?php phpinfo(); ?>をはっつけて、情報を確認します。これは、PHPの設定内容を確認する関数です。

こんな感じで、設定内容がずらーっと出てきます(長い)。GD supportが『enable』になっています。このサイトのサーバーではPHPで画像加工ができると判定しました。

PHP GD・ImageFilterで、画像の色合いを変えるコード

画像を加工するPHPファイルの部分です。 /wp-content/uploads/2018logo2.pngというのは、このぶろぐのロゴ画像のパスです。これに対してR255・G0・B255みたいな形で色合いを設定しました。CSSにもこんな風にRGBで指定するものがあるので、やったことがあるととっつきやすそうです。

そして、任意のHTMLファイルの中で、画像を呼び出すときに、『<img src="https://○○(ドメイン)/PHPファイルの名前.php" alt="" />』のように、画像のリンクにそのPHPファイルを指定します。出てこないときはPHPファイルの最後でvar_dumpしてみました。

実行結果~PHPで色合い変化成功!

ちょっと背景透過pngを使ったのは失敗だったんですけど(周りが黒くなる笑)、PHPだけで緑をカットして紫っぽい色合いにすることができました。

注意!アルファチャンネルサポートは、PHP5.2.5以上から、バージョンが低いと警告が

そのほか、画像があるページじゃなくて、直接PHPファイルにアクセスしても画像を表示します。

しかし、管理人は『main.jpドメイン(ロリポサーバーのドメイン)』の部分を、過去バージョンのPHP(5.2)にしたままでした。その結果main.jpドメインでアクセスすると、このように大量に警告が。

PHPマニュアルによると、『5.2.5 IMG_FILTER_COLORIZEでアルファチャネルをサポートするようになりました』とあったので、古いバージョンのPHPでは使えません。こういうことがあるので、バージョンも気にしましょう。

参考サイト・まとめ

PHP GD・ImageFilterで画像の色を変える方法・参考サイト

  • imagefilter(PHPマニュアル)
    https://www.php.net/manual/ja/function.imagefilter.php 
  • GD グラフィック ライブラリ(wikipedia)
    https://ja.wikipedia.org/wiki/GD_Graphics_Library
  • PHP GDプログラミング(geekなぺーじさん)
    https://www.geekpage.jp/web/php-gd/

管理人は上記のサイトを見て、PHPで画像加工ができることを知りました。 今回あつかったのはRGBや透過を調整する機能でしたが、ほかにも『グレースケール』や『彩度・輝度』、『単色化』『モザイク』などもokだそうです。PHPということで、WordPressなどにも組み込みやすいかもしれないので、何か活用方法を考えてみたいと思います。


【カテゴリ】 - PHP・データベースetc
【タグ】 -

  関連記事

【WordPressで覚えよう】PHP「->」(オブジェクト演算子/アロー演算子)・「=>」(ダブルアロー演算子)の違い

今回は、管理人もPHP学習し始めのときは混同していた、PHPの演 ...

【超危険】WordPressデータベースリビジョンお掃除

今回は、WordPressのリビジョンが、データベースに大量にた ...

【PHP】カウントダウン機能に使える?array_reverseで配列要素を逆に,パラメーター挙動&array_flipとの違い

今回は、管理人がYouTubeData APIの、order=d ...

YouTube Data APIを使って、PHPで『タイトル・動画id・サムネイル画像』などを取得してみる(Search: listリソース)

今回は、youtubeとwebサイト連携で、YouTube Da ...

テスト環境(ローカル含む)でPHPサイト開発に使えるツール&xamppでやってみた例(設定や表示ファイルetc)

今回は、管理人がサイトに、ちょっとした機能を実装しようとしていた ...

WordPress一覧表示で、特定のカテゴリ/投稿を表示しないようにするには?→category_not_in・post_not_inで

今回は、WordPressの公式フォーラムを見ていたら、『一覧か ...

WordPress・REST APIのjsonファイルにカスタムフィールドを入れ、タイトル・アイキャッチと共に外部サイトで取得・表示

今回は、管理人がWPで作ったサイトのコンテンツを、別の自社運営サ ...