PR
Lesson

16進数カラーコードをGIMP用パレット(GPL)に変換する方法|Inkscape・Krita対応【WSL】


前回まではPhotoshopのACOパレットをGIMP・Inkscape・Kritaで使う方法をお伝えしました。

イラストを描いていると、

  • 「この配色、後でまた使いたいな」
  • 「色をスポイトで拾い直すの、ちょっと面倒……」
  • 「そもそも色選びに自信がない……」
  • 「いい感じの配色を使ってセンスアップしたい!」

と思うことはありませんか?

配色サイトを見ると綺麗な色の組み合わせが16進数カラーコード(別名:HEXカラーコード。「#FFFFFF」みたいな書き方のこと)で並んでいますよね。

ダウンロード用のパレットファイル(ACOパレットやASEパレット)が用意されていることもありますが、基本的にカラーコードをコピーペーストして使うことが前提になっている場合が多いです。

今回は、そういった配色をGIMP・Inkscape・Kritaで使えるGPLパレットに一気に変換する方法を紹介します。

少しだけ応用編ですが操作自体はとても簡単です。

スポンサーリンク

この方法をおすすめする対象者

  • GIMP・Inkscape・Kritaを使っている
  • 配色サイトをよく使う
  • 同じ色を何度も使い回したい
  • 作業を少しでも楽にしたい

スポンサーリンク

配色サイトの色、コピペや変換が大変な問題

配色サイトはとても便利ですが、フリーソフトで使おうとするとちょっと困ったことがあります。

  • 色は16進数カラーコードで書かれている(場合が多い)
  • ソフト側ではRGB指定やパレット登録が必要になる(場合が多い)
  • 色が多いと登録作業が大変

1色や2色ならそんなに手間でもありませんが、10色、20色になると正直かなり面倒ですよね。

そこで「まとめて変換してパレットにしてしまおう」と思ってこのツールを作成しました。

16進数カラーコード(HEXカラーコード)とは

16進数カラーコードは、色を#RRGGBBという形式で表したものです。

R(赤)G(緑)B(青)の強さを、それぞれ16進数(00~FF)で指定します。

配色サイトやWebデザインでよく使われている色の表現方法です。

RGBカラーコードとは

RGBカラーコードは、色を赤・緑・青の3つの10進数の数値(0〜255)で表します。

数字が大きいほどその色が強く、小さいほど弱くなります。

16進数カラーコードとRGBカラーコードの関係

16進数カラーコードとRGBカラーコードは一見すると全く別々の値に見えますが、実は16進数と10進数という表現方法が違うだけで同じ値を示しています。

変換しても色が変わることはありません。

(例)

16進数のFは10進数の15です。16進数のFFを10進数に変換すると255になります。

15 × 16¹ + 15 × 16⁰ = 240 + 15 = 255

16進数についてはこちらの記事が参考になります。

16進数とは?活用例・基数変換方法・変換表を解説
目次 1. 16進数をちゃんと理解するための基礎知識1.1. 10進数1.2. 基数2. 16進数とは3. 16進数がコンピュータ関連で登場する理由4. 16進数の活用例4.1. 色の指定4.2. 文字コード4.2.1. プログラミング4.

Inkscapeで扱うカラーコードについてはこちらの記事でも紹介しています。

Inkscapeの色空間とカラーコード
お絵かきをする時、皆さんは「色」ってどこから選んでいますか?カラーパレットから選ぶ派? 直接カラーコード入力派? カラーホイールやスライダーで調整する派でしょうか?ソフトに付いているカラーパレットしか使ったことがないよ、という人も自分で色選...

スポンサーリンク

GIMP・Inkscape・KritaでGPLパレットを使うメリット

GIMP・Inkscape・Kritaでは、GPL(GIMP Palette)形式のファイルを使うことで、以下のようなことができます。

  • よく使う色を一覧で表示
  • クリックするだけで色を切り替え
  • 作品ごとに配色を管理

一度カラーパレットを作ってしまえば、とても楽に作業できます。

カラーパレット変換用シェルスクリプト「hex2gpl.sh」って何?

hex2gpl.shは

16進数カラーコードを並べたテキストファイル

GIMPやInkscapeやKritaで使用できるカラーパレット(GPLファイル)

に変換するツールです。

難しい設定はほとんどなく、

「色の一覧を用意して実行するだけ」で使えます。

.shファイル(シェルスクリプト)なので主にLinux環境向けの実行ファイルです。

Windows上ではWSL(Windows Subsystem for Linux)を利用してUbuntu等を起動してシェルスクリプトを実行できます。

macOSでもターミナルでシェルスクリプトを実行できます。(一部の細かい挙動やオプションは、LinuxとmacOSで違うことがあります。)

macOSはLinuxではありませんが、ターミナル操作やコマンドの考え方はとてもよく似ています。

そのため、このようなシェルスクリプトは様々な環境で使うことができます。

WSL環境とUbuntuの導入についてはこちらの記事で解説しています。

PhotoshopのACOパレットをGIMP・Inkscape・Kritaで使う方法【ツールで自動化・上級者向け】
前回はPhotoshop向けのカラーパレットのACOファイルを、画面の操作だけで簡単にフリーソフトで使えるGPLファイルにする方法をお伝えしました。GIMPでパレットのインポートからACOファイルを読み込むと自動的にGPLファイルとしてpa...

以下の説明では既にWSLとUbuntuの環境が用意できているものと想定して話を進めます。

LinuxやmacOS向けの詳しい説明は割愛しますが、こちらの記事が参考になります。

Linux向けのシェルスクリプトを実行する方法について

【初心者向け】.shファイルをLinuxで実行する方法
”Linuxをインストールして、ソフトをダウンロードしたんですけど、どうやって実行すればいいですか?「○○.sh」ってファイルなんですけど。”こういう質問、たまにありますよね。そこで、Linux初心者向けの記事として「.shファイルを実行す

macOS向けのシェルスクリプトを実行する方法について

初心者向けシェルスクリプトの作り方【Mac版】
こんな人におすすめ:ターミナルでの操作をプログラムとして保存して後で実行したい 目次 1. 開発環境2. シェルスクリプトの作り方3. シェルスクリプトの実行の仕方3.1. 実行権限でエラーが出る場合4. まとめ 開発環境 macOS: C

シェルスクリプトとは

シェルスクリプトは、Linuxのコマンド操作をまとめて自動実行できる仕組みです。

一つ一つ手で打って実行させている作業を、一回の命令で一気に実行できます。

シェルスクリプトのメリット

  • Linuxが動けば動かせる
  • WSL / Linux / macOS で共通
  • ファイルを置いて実行するだけ
  • 中身のコマンドを読めば何をしているか分かる

シェルスクリプトのデメリット

  • 一般的なプログラミング言語に比べて実行が遅い
  • 大規模な作業には不向き

なぜシェルスクリプトを採用したのか

  • 複雑な環境構築をしなくても使える
  • Linuxコマンドで何ができるのかを紹介したい

シェルスクリプト「hex2gpl.sh」でカラーパレットを自動生成する方法

hex2gpl.shを用意する

以下のコードをコピーして、メモ帳等を開いてペーストし[ファイル>名前を付けて保存]します。

#!/bin/bash

# 引数チェック
if [ $# -lt 2 ] || [ $# -gt 3 ]; then
    echo "Usage: $0 input.txt output.gpl [columns]"
    exit 1
fi

input="$1"
output="$2"
columns="${3:-12}"  # デフォルト12列

# 入力ファイル存在確認
if [ ! -f "$input" ]; then
    echo "入力ファイルが存在しません: $input"
    exit 1
fi

# 出力ファイル存在チェック
if [ -e "$output" ]; then
    echo "出力ファイルが既に存在します: $output"
    echo "処理を中断しました。"
    exit 1
fi

# 出力ファイル名からパレット名を決定(拡張子除去)
palette_name=$(basename "$output" .gpl)
palette_name=$(echo "$palette_name" | cut -c1-100)

# GPLヘッダー作成
{
    echo "GIMP Palette"
    echo "Name: $palette_name"
    echo "Columns: $columns"
    echo "#"
} > "$output"

echo "変換開始: $input → $output"
echo "Columns: $columns"

# 重複判定用連想配列(HEX大文字)
declare -A seen_colors

total=0
written=0

while IFS= read -r line || [ -n "$line" ]; do
    total=$((total+1))

    # CR削除
    line=$(echo "$line" | tr -d '\r')

    # 空行スキップ
    [ -z "$line" ] && continue

    # セミコロン区切り
    hexpart="${line%%;*}"
    namepart="${line#*;}"
    [ "$hexpart" = "$line" ] && namepart=""

    # 先頭#除去
    hex="${hexpart#\#}"

    # 6桁チェック
    if [[ ! "$hex" =~ ^[0-9A-Fa-f]{6}$ ]]; then
        echo "スキップ: 無効なHEX → $line"
        continue
    fi

    # 重複チェック
    hex_uc="${hex^^}"
    if [[ ${seen_colors[$hex_uc]+_} ]]; then
        echo "スキップ: 重複カラー → #$hex_uc"
        continue
    fi
    seen_colors[$hex_uc]=1

    # 色名決定
    colorname="${namepart:-#$hex_uc}"
    colorname=$(echo "$colorname" | cut -c1-100)

    # 16進 → 10進
    r=$((16#${hex:0:2}))
    g=$((16#${hex:2:2}))
    b=$((16#${hex:4:2}))

    # 出力
    printf "%d %d %d\t%s\n" "$r" "$g" "$b" "$colorname" >> "$output"
    written=$((written+1))

    # 進行メッセージ(100行ごと)
    if (( total % 100 == 0 )); then
        echo "処理中… $total 行読み込み"
    fi
done < "$input"

echo "変換完了: $output"
echo "総行数: $total, 出力行数: $written"
メモ帳でシェルスクリプトファイルを保存する
メモ帳でシェルスクリプトファイルを保存する
  • ファイル名は「hex2gpl.sh」
  • ファイルの種類は「すべての種類」
  • エンコードは「UTF-8」

VSCodeなどを使用している場合は文字コードUTF-8・改行コードLFで保存してください。

WSLターミナルでファイルのあるフォルダを開く

「hex2gpl.sh」を保存したディレクトリ(フォルダ)をファイルエクスプローラー上で開きます。

ファイルエクスプローラーのアドレス欄に半角英字で「wsl」と入力し、Enterキーを押すと、ファイルエクスプローラー上で開いているディレクトリをWSLのターミナルで直接開くことができます。

「Linuxシェルをここに開く」が廃止

Windows11では「Linuxシェルをここに開く」というメニューがなくなっています。

代わりに、ファイルエクスプローラーのアドレスバーにwslと入力してEnterを押してください。

ファイルエクスプローラーで開いているフォルダをそのままUbuntu(WSL)で開けます。

アドレス欄にwslと入力してEnter
アドレス欄にwslと入力してEnter
ファイルエクスプローラーからwslコマンドで開いたwslターミナル
ファイルエクスプローラーからwslコマンドで開いたwslターミナル

実行権限を付与する

シェルスクリプトを実行するには、実行権限を付与する必要があります。

Windows上で作成したのファイル(/mnt/c配下)をWSLから実行する際は、最初から実行可能に見えることがあり、この手順を省略しても動作する場合があります。

LinuxやmacOSでは必要な操作なので、ここでは実行権限を付与する手順も紹介します。

chmodコマンドで実行権限を付与

ファイルのあるフォルダを開いた状態のWSLのターミナルで以下のコマンドを実行します。

chmod +x hex2gpl.sh

上記のコマンドは文字の上でクリックするとコピーできます。WSLターミナルの最新の行の$マークの横で右クリックするとコピーしたコマンドを貼り付けられます。入力できたらEnterを押すと実行できます。

chmodコマンドで実行権限を付与
chmodコマンドで実行権限を付与

これで、

「このファイルは実行していいですよ」

という許可が付与されます。

一度設定すれば、毎回やる必要はありません。

シェルスクリプトの改行コードを変換する

Windowsのメモ帳ではLinux向けの改行コードLFで保存ができない場合があります。Windowsで利用されている改行コードCRLFをLinux向けの改行コードLFに一括変換します。

VSCodeなどで保存の際に改行コードLFを指定している場合はこの工程は省略してください。

改行コードの変換が必要なのはシェルスクリプト(.shファイル)だけで、カラーリスト(.txtファイル)は改行コードの変換が不要です。

ファイルのあるフォルダを開いた状態のWSLのターミナルで以下のコマンドを実行します。

sed -i 's/\r$//' hex2gpl.sh
改行コードの違いで出るエラーと改行コードの一括変換
改行コードの違いで出るエラーと改行コードの一括変換

Linuxのsedコマンドについてはこちらが参考になります。

【コマンド詳細】sedコマンドの使い方とオプションまとめ | 【インフラの手順書】
sed コマンドとは?sed (Stream Editor) は、LinuxやUNIXシステムで使われるストリーム形式のテキストエディタです。ファイルを直接開くことなく、以下のようなテキスト操作を効率的に実行できます:文字列の置換行の削除や...

色リストの書き方

16進数カラーコードをテキストファイル(.txtファイル)に書きます。

テキストファイルはWindowsの場合はメモ帳などで作成できます。

(例)

#EFD9EB;白っぽい紫
#33032A;あずきバー
#46103C
#702C64
#9B568E
#C58FBB;黒っぽい紫

書き方はとても簡単です。

  • #RRGGBB形式の16進数カラーコードを書く
  • 区切り文字;(半角セミコロン)の後ろに色名を書く
  • 色名を書かない場合は、自動でカラーコードを色名に使用
  • 色名を書かない場合は、;(半角セミコロン)は省略可能
  • 一色ごとに改行する

日本語の色名が使用可能です。

色名が長すぎる場合は後半部分が自動でカットされます。

この16進数カラーコードと色名を書いたファイルをテキストドキュメント(.txt)として[ファイル>名前を付けて保存]します。

エンコードはUTF-8にしてください。

この例では「colors.txt」という名前を付けて保存しました。

メモ帳でカラーリストを作成し保存する
メモ帳でカラーリストを作成し保存する

カラーパレットに変換する

色リストができたら、あとは変換するだけです。

ファイル名を指定してシェルスクリプトを実行します。

(例)

./hex2gpl.sh colors.txt MyColors.gpl

上記のコマンドは文字の上でクリックするとコピーできます。WSLターミナルの最新の行の$マークの横で右クリックするとコピーしたコマンドを貼り付けられます。入力できたらEnterを押すと実行できます。

  • ./ 今いる場所のファイルを実行する
  • hex2gpl.sh 実行ファイル名
  • colors.txt 入力ファイル名(色リスト)
  • MyColors.gpl 出力ファイル名(GPLパレット)

これだけで、GIMP用のパレットファイルが自動的に作成されます。

hex2gplでカラーリストをGPLファイルに変換する
hex2gplでカラーリストをGPLファイルに変換する

hex2gpl.shの特徴

  • 同じ色があれば自動で整理
  • パレット名はファイル名から自動設定

「ちゃんと動いているかな?」と不安になる人のために、

変換中のメッセージも表示されます。

できあがったパレットを使う方法

拡張子が「.gpl」のファイルを、各ソフトウェアのユーザーデータが保存されるフォルダに移動またはコピー貼り付けします。

GIMPのパレットフォルダ

%APPDATA%\GIMP\3.0\palettes

Inkscapeのパレットフォルダ

%APPDATA%\inkscape\palettes

Kritaのパレットフォルダ

%APPDATA%\krita\palettes

上記のようなAppData内のpalettesフォルダに入れて、アプリケーションを再起動すると作成したカラーパレットが表示されます。

この方法は以前の記事でも紹介しています。

PhotoshopのACOパレットをGIMP・Inkscape・Kritaで使う方法【無料ソフト対応・初心者向け】
カラーバリエーションを作成する記事を書いていたら長くなったので、番外編としてカラーパレット(カラーセット)を準備する方法をご紹介します。初心者向け編なので画面の操作だけで簡単にできる方法をまとめてみました。文章は長いですが操作は簡単なので試...

カラーパレットを作成すると、配色サイトを見ながら描く必要がなくなり、色選びがとてもスムーズになります。

「毎回スポイトで色を拾っている」・「ブラウザで配色サイトを開きながら作業している」という人には、一度試してほしい方法です。

おわりに

今回は、16進数カラーコードをまとめてフリーソフト用のカラーパレットにする方法を紹介しました。

少しだけ応用的ですが、一度作ってしまえば、その後の作業がかなり楽になります。

「ちょっと便利な道具を1つ増やす」

そんな感覚で使ってみてくださいね。

コメント

タイトルとURLをコピーしました