📊

素人が生成アイコンをGIMPで画像編集したらハマった話

2024/06/18に公開

TL;DR

画像編集素人の自分と、多機能画像編集ソフト GIMP との戦いの記録。

動機: 自作アイコン作りたい

某有名シリーズのキャラのアイコンで今まで活動してたが、自作のアイコンに変えたいと思っていた。

ChatGPT でアイコン生成

自作と言いつつ、自分で描く能力もなく、依頼する選択もできなかったので、ChatGPT にアイコンを生成してもらうことにした。

ChatGPT と壁打ちしながら DALL-E 3 に生成してもらったアイコン画像がこれ。

やや な感じはあるが、自分を表しているような気がするので採用する。

問題点

一旦これで進めることにしたが、気になった点がいくつかあった。

  • 白背景のページに表示すると、色褪せてる感じがする
  • 星が小さくて、一覧に並べたときに見えない
  • 色を変えたバリエーションを試してみたい
  • グラデーションのバランスを調整したい

この問題を解決するために、画像編集ソフトを使って編集することにした。

GIMP を使う

https://www.gimp.org/

GIMP は、多機能な画像編集ソフトで、無料で使える。

デザイン作成をよく行う人であれば、Photoshop や Illustrator などを使っているかもしれないが、自分には猫に小判だと考え、GIMP を使うことにした。

インストール

Mac であれば、Homebrew でインストールできる。

brew install --cask gimp

使用したバージョン

GIMP 2.10.36

GIMP の感想

使ってみて結論、正直にいうと、使い方が難しいので、自分のような画像編集素人にはおすすめはできない。

しかし、無料にも関わらず、やりたいことはほぼほぼできるので、必要なら使い方を覚えても良いかもくらいの温度感だということを述べておく。

ただし、本当に操作が難しい

非直感的な機能が多いため、本来のデザインを考えると同時に、操作にも頭を使う(脳トレやってる気分)

これは本当にそうで、今回一番苦戦したところでは、将棋で読みを入れる時と同じ脳の使い方をした気がする。

どうやら、GIMP v3がもうすぐリリースされるニュースを見かけたので、v3では、もっと使いやすいものになっているかもしれない。

やること

以下の素材を、GIMP を使って編集する。

以下のような編集を行う。

  • ちょっと色褪せてる感じなので、いい感じにする
  • 星をちょっと大きくする
  • 色を変える
  • グラデーションのバランスを調整する

この辺を 対話式でやってくれるAI があれば、もっと楽なのになぁと思いながらやってみる。

ChatGPT だと無理でした。

先に最終結果をのせておく

最終的にこうなったというアイコンを先にのせておく。

ちょっと明るくしたり、色褪せて見える箇所を修正したり、星を大きくしたり、色を変えたりしている。

ちょっとこぎれいになった気がする。

行った作業

写真のような複雑な要素が多い場合は別の機能を使う必要があると思うが、少ない構成要素でできた画像なら、今回のやり方の応用で色々編集できると思う。

やったステップは以下の通り。

  1. 準備
  2. 単色化
  3. グレースケールの正規化
  4. レイヤーの切り出し
  5. グラデーションの調整
  6. 星の大きさを変える

それぞれについて、詳細を書いていく。

1. 準備

基本的なアレコレを準備する。ここではあえて詳細に書いてもしょうがないが、メモとして残しておく。

キャンバスのサイズ調整方法

画像をキャンバスに貼る

サイズの調整は、レイヤー・キャンバスのサイズそれぞれ互いに合わせることができるらしく、うまいことやる。絶対値指定の方が安定すると思う。

  1. ファイル新しい画像
  2. 画像をペースト
  3. キャンバスやレイヤーのサイズを調整する。
    • キャンバスのサイズ調整
      • 画像キャンバスサイズの変更
    • レイヤーのサイズ調整
      • レイヤーレイヤーサイズの調整
アクティブレイヤー

アクティブレイヤーを選ぶ

こんな感じで複数のレイヤーがあるとき、どれかを選択すると、そのレイヤーが「アクティブなレイヤー」になり、編集可能になる。

「目」のマークを有効にすると、表示されるが、編集対象になるのは、アクティブなレイヤーの場合のみなので注意する

選択方法

編集対象の要素を選択する

これが意外と難しい。PowerPoint や Googleスライドのノリで使おうとすると面食らう。普通の状態だと、クリックして選択ができないし、ドラッグで移動もできない。
多分パスをもうちょっと使いこなせたらできる気もするが、使わないでなんとかやってしまったため、使う場合は調べて欲しい。

しかも、今回は生成した画像から逆にレイヤーを検出する必要があったので、難易度が高めだった。

ファジー選択

自分のユースケースでは、主に色が異なる部分を別レイヤーに切り出すなどする必要があったので、ファジー選択を頻繁に使った。

ファジー選択 は、ある色をクリックすると、その色と似た色の境界を自動で認識して、その境界に囲まれる部分を選択する機能だ。

  1. 左上にあるツールボックスと思われるものからファジー選択を選ぶ。 色域を選択 と同じボタンなので、必要ならば右クリックで切り替える。
  2. 画像内の、境界に囲まれた部分をクリックすると、点線で選択ができる。グラデーションのあるところだとギザギザになるので、Shift を押しながらその辺をクリックすると、大体うまいこと選択できる。

色域を選択

アクティブレイヤーの中で、クリックしたピクセルの色と同じ色の領域を選択する機能で、「ある色を一括で別の色に変換したいが、飛び飛びでファジー選択が難しい場合」などにかなり便利。

基本的な選択

ツールボックスから普通の選択もできる。今回はあまり使わなかった。

  • 矩形選択
  • 楕円選択

地味に大事なテクニック

Command + Shift + A で全ての選択を解除できる。これがないと、選択を解除するのが意外と面倒。

普通のスライドツールのように、選択範囲外をクリックすると選択が解除されるわけではないので、このショートカットがあると便利である。

ちなみに、GIMPでは、「選択」も履歴に残るくらい重要な操作なので、簡単に解除されない様になってるんだと思う。

2. 単色化

カラーが付いていると、後々面倒なので、とりあえず単色化する。

「Mono Mixer」では、選択領域を RGB それぞれで重みをつけて平均し、グレースケールに変換することができる。

  1. 脱色Mono Mixer
    • RGB がそれぞれ最初は 0.33 とあわせて1になるようになっている。

特に今回は傾斜をつける必要はなかったので、 0.33 のままで問題なかった。

結果

変更前

変更後

3. グレースケールの正規化

この後のグラデーションの処理をシンプルにするため、グレースケールの正規化を行う。

方法: 自動補正ホワイトバランス

グレースケールの画像だと、各ピクセルのデータが一つの 0~255 の範囲の数値として表現される。

例えば、黒い部分は 0 に近く、白い部分は 255 に近い数値となる。これはつまり 明度ってやつと対応する。

白っぽく見える部分も、実は色がついているので、実際の分布では、最小値が0で最大値が255になっているわけではない。

今回はこれを 0 ~ 255 になるように正規化する。

結果

「ホワイトバランス」適用前

「ホワイトバランス」適用後

「ホワイトバランス」の意味

「ホワイトバランス」の意味を考えてみよう。

明度ヒストグラムでは、各明度に対するピクセル数をカウントするヒストグラムを見ることができる。

左端が黒、右端が白 である。白色に近い部分が多いので、右側にピークがある。

「ホワイトバランス」適用前

左から少し行ったところにピークがあり、右端にもピークがある。

  • 左側のピーク:黒寄りの灰色部分が多いことを意味している
  • 右側のピーク:ほとんど白だが、少し灰色部分が多いことを意味している

「ホワイトバランス」適用後

「ホワイトバランス」によって、二つのピークが両端に寄って、明度全体に分布される様になった

「ホワイトバランス」適用後のヒストグラムを見ると、

  • 黒寄りの灰色が黒に近づいた
  • 白寄りの灰色が白に近づいた

ことがわかる。

4. レイヤーの切り出し(ここが地獄)

ここまでは簡単にできたのだが、レイヤー切り出しが地獄だった。

アイコンの人物本体の周りを囲う白い部分や、地平線の白い部分が、背景と同じ色になってしまい、グラデーションの調整が難しかった。

白い部分は、別の色でグラデーションをつけるときに、その部分が変な色になってしまうため、別レイヤーに切り出す必要があった。

全部書くと大変なので、概略だけ書く。

  1. 人物本体の周りの白い領域と、地平線の領域の境目を鉛筆ツールを使い、描く。
  2. その境目に沿って、ファジー選択を使って選択する。
  3. 塗りつぶしツールを使って、選択した部分を別レイヤーに切り出す。

やったことをまとめてしまえば大体こんな感じなのだが、ツールの使い方が思ったより難しく、何度もやり直しをした。

人物本体の輪郭を取得するため、選択要素をちょっと広げてみる機能を探してみたり、なんか色々と試行錯誤をした。

しかし、その修行のおかげで、GIMP の使い方はだいぶわかるようになった。

5. グラデーションの調整

無事、レイヤーを切り出すことができたので、あとはそれぞれのレイヤーに対して、グラデーションを調整するだけであった。

  • まず端点となる二つの色を 描画色背景色 に設定する。
  • 範囲を選択し、ツールから、グラデーションを選ぶ。
  • 適当にグラデーションを描く。

6. 星の大きさを変える

星の部分をファジー選択で選択し、 ツール変形ツール拡大/縮小 で大きさを変えるだけ。

最終結果

最終的にはこんな感じになった。

一応、やりたいことはできたので、満足している。

余談

実は、詳細は書かないが色々やった。

  • 本体と背景を別のカラースケールで試した
    • カッコ良いと思ってる色彩を真似してみた結果、前衛的な色彩になりすぎた
  • 補正した画像を入力に DreamStudio で色々試してみたり
    • 口が生えた
    • 笑顔を作ろうとしたら、怖い顔になった

色々やったが、最終的にはシンプルなグラデーションに落ち着いた。

まとめ

人生で一回はGIMP を使ってみるのも悪くないかもしれない。

やりたいことに対して、想像してたよりも手順が難しかったが、最終的にはなんとかやりたいことは一通りできた

「こうしたらもっと簡単にできるよ」など、記事に関するコメントがあれば、ぜひお願いします。

色々と試行錯誤しているときに、「そもそも、横顔のアイコンって微妙か!?」とか、「SNSのアイコンってどんな色がいいんだ」と路頭に迷っていたが、ChatGPT に画像をアップロードすると、フィードバックしてくれたり、 色相環のことを教えてくれたり、勉強になった

ただ、今のChatGPTだと、画像アップロードに対して言語でのフィードバックはできるが、画像を編集してくれるわけではないので、画像編集自体は自力でやる必要がある

とりあえず、今回作ったアイコン自体は、しばらく使ってみようと思う。

もっと視認性が良いアイコンだったり、個性的なアイコンが欲しいと思う気持ちもあるので、様子を見ながら、また次の機会に作ってみたい。

次のアイコンを作るときには、 対話式でやってくれるAI ができてるんだろうなぁと思っている。というかできてて欲しい。

これから、GIMP の出番はあるかはわからないが、せっかく使い方も慣れたので、機会があればまた使ってみたい。

X(Twitter)もよろしくお願いします。

https://twitter.com/zawawahoge

Discussion