PR
Lesson

PhotoshopのACOパレットをGIMP・Inkscape・Kritaで使う方法【ツールで自動化・上級者向け】

目次

前回はPhotoshop向けのカラーパレットのACOファイルを、画面の操作だけで簡単にフリーソフトで使えるGPLファイルにする方法をお伝えしました。

GIMPでパレットのインポートからACOファイルを読み込むと自動的にGPLファイルとしてpalettesフォルダに保存されるという内容でした。

でも、すべてのACOファイルがこの方法でうまく変換できるわけではありませんでした。

GIMPで読み込めないがKritaで読み込めるACOファイルもありましたね。その場合、Kritaのパレット部分をスクリーンショットして、GIMPで画像からパレットをインポートするという手段があるということも合わせてご紹介していました。

スポンサーリンク

GUI操作では限界がある

KritaでACOからGPLに変換できない

KritaではACOファイルをそのまま読み込むことができますが問題があります。

エクスポート形式にGPL形式が存在しないのです。

それならキャンバスにパレットの色を塗って、その色をスポイトして新規パレットを作成すればいいのではと思うかもしれません。現在のところ、Krita 5.2.11では新規パレットをGPL形式で保存しようとすると強制終了するバグがあるのです。

Krita Monthly Update - Edition 25
Welcome to the March 2025 development and community update.Development Report Text Tool Rework Progress Wolthera is stil...

何より、手作業で保存しようとするとパレットの色が多い場合はそれだけで大変な作業になってしまいます。

GIMPで画像からパレットをインポートでは不正確

GIMPで画像からパレットをインポートすると、色の並びがバラバラになる・似た色がまとまってしまうという問題がありました。

GUI(グラフィカルユーザーインターフェース)での変換には限界があります。

たくさんの色を含んだパレットを正確に変換したい場合、CLI(コマンドラインインターフェース)による自動変換が効率的です。

CLIというのは、Windowsのコマンドプロンプト、PowerShell、macOSやLinuxのターミナルなどを使用してキーボード入力で行う操作のことです。

CLIはCUI(キャラクターユーザーインターフェース)とも呼ばれます。

スポンサーリンク

ACOからGPLへの変換ツールについて

公式変換ツールは存在する?

AdobeやGIMPの公式ではACOファイルからGPLファイルへ変換するツールは提供されていません。

そのため、有志が開発したオープンソースのプログラムを利用する必要があります。

手作業でACOからGPLファイルを変換すると数分から数十分かかりますが、変換ツールを使用するとほんの数秒で終わります。

実行環境のセットアップとソースコードのコンパイルをしないといけないので、少しハードルが高く感じるかも知れませんが、慣れたら楽に変換できるので興味がある人はご覧ください。

今回の記事ではACOからGPLファイルの変換ツール「aco2gpl」と日本語の色名に対応した機能追加版の「aco2gpl-utf8」をご紹介します。

「aco2gpl」とは?

GitHub - baskerville/aco2gpl: Converts a Photoshop palette to a GIMP palette
Converts a Photoshop palette to a GIMP palette. Contribute to baskerville/aco2gpl development by creating an account on ...

「aco2gpl」の概要

aco2gplは、baskervilleさんが作成したC言語で書かれたシンプルな変換プログラムです。

aco2gplを利用すれば、PhotoshopのACOファイルをGIMPで使えるGPLファイルに自動で一気に変換できます。

GitHubで公開されており、GPLライセンス バージョン2(GNU General Public License v2.0)を守っていれば無料で利用できます。

「aco2gpl」の特徴

  • 軽量で高速に動作
  • オープンソースなので自由な利用・改変・再配布が可能
  • GPLライセンスなので無保証
スポンサーリンク

C言語のプログラムを動かすには?

人間が分かるC言語というプログラミング言語で書かれたプログラムのソースコードを、コンピューターが分かる機械語に変換(コンパイル)して、実行ファイルにする必要があります。コンパイルを行うプログラムをコンパイラと呼びます。

GCCというC言語のコンパイラがあり、今からの手順ではそれを準備する方法を説明していきますね。

C言語実行環境を用意する

Windows環境の場合、Windowsネイティブ(Windows上で直接動作するプログラム)のC言語開発環境を準備する方法と、WSL(Windows Subsystem for Linux)上でUbuntu等のLinux系OSを起動してC言語開発環境を準備するという2種類の方法が取れます。

実は次の記事でシェルスクリプト(Linuxシステム上で動かすコマンドをまとめて自動化するためのプログラム)を用いた方法をご紹介する関係でWSLの利用を推奨します。

WSL(Windows Subsystem for Linux)環境を構築する方法

WSLをMicrosoft Storeからインストールする場合
  1. 以下の公式リンクを開きます。

    Windows Subsystem for Linux - Microsoft Apps
    Windows Subsystem for Linux (WSL) lets developers run a GNU/Linux environment -- including most command-line tools, util...
  2. [入手] をクリックします。
  3. インストールが完了するまで待ちます。
コマンドを使ってWSLをインストールする場合
  1. スタートメニューからWindowsの「ターミナル」または「PowerShell」を管理者権限で起動(右クリック>管理者として実行)します。
  2. 以下のコマンドを入力して実行します。
    wsl --install
  3. すでにWSLを導入済みの場合は、次のコマンドで最新のMicrosoft Store版に更新できます。
    wsl --update
  4. インストール完了後、再起動を求められた場合は再起動します。

コマンドからインストールした場合もMicrosoft Store版のWSLがインストールされます。

WSLでUbuntuをセットアップする方法

Ubuntuをインストールする
  1. Microsoft Storeで「Ubuntu」を検索します。
  2. 好きなディストリビューション(Ubuntu 24.04.1 LTSがおすすめ)を選んでインストールします。
  3. スタートメニューからUbuntuを起動します。
  4. ユーザー名とパスワードを設定します。

「Enter new UNIX username:」とユーザー名の入力を求められますので、32文字以内で入力します。使用できる文字の種類は小文字のアルファベット (a-z)、数字 (0-9)、アンダースコア (_)、ハイフン (-)です。

このユーザーネームはUbuntu上でのみ使用されますので複雑な名前にしなくても大丈夫です。

「New password:」と「Retype new password:」では、Ubuntu上で使用するパスワードを半角英数字で同じ物を2回続けて入力します。これはWindowsのログインパスワードとは別の物を新しく決めて入力してください。

Ubuntu上でパスワードの入力を求められる際に、入力しても画面上では変化がないですが、入力自体は受け付けています。Enterキーを押すと確定します。

詳しい手順はこちらの記事がわかりやすいです。

WSL2のインストールを分かりやすく解説【Windows10/11】
Widows上でLinuxが使えるWSL2をインストールしてみました。WindowsでLinuxコマンドが使えますし、開発環境としても便利に使えます。
WSLのセットアップ (Windowsのみ) | ut.code(); Learn
LinuxとWSL
【いまさら聞けない】C言語の開発環境を作る - Qiita
初めに 自己紹介 初めまして、けうです。今まで勉強してきたことなどをここにまとめようと思います。Qiitaは初めてですので見苦しいところもみられるかと思いますが、気にしないでください。なお、記事の対象は基本的に初学者向けです。かく言う私も初...

WSLでC言語開発環境を準備する方法

Ubuntuをインストールした時点で、build-essentialパッケージも同時にインストールされ、gccコマンド実行のためのパスも通った状態になっているため、C言語開発環境を別途用意する必要はありません。

gcc --versionと入力してEnterキーを押すとバージョン情報が表示されている場合、gccがインストールされ使用できる状態になっています。

以下の表示はgccがインストールされている場合のバージョン情報の例です。

gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

バージョン情報ではなく、「command not found」が表示された場合は、Ubuntu / Debianのビルドツールのインストールのコマンドを実行してインストールしてみてください。

WindowsネイティブのC言語開発環境を準備する方法

WSLを使わない場合、gccを含めたWindows向けの開発環境を準備する必要があります。

文字コードや改行コードの違いによるエラー(Unexpected end of file!)が発生する場合があるため、この記事ではWSLの使用を推奨します。

MinGW-w64をインストールしてパスを通す方法はこちらが参考になります。

WindowsにMinGW-w64をインストールする 2025年版 - Qiita
はじめに おじさん、普段C++言語でプログラムをするときは、VisualStudio Communityを使っています。 個人は無料で使えますし、やっぱりF9キーでブレイクポイントを設定できたり、F5キーを押すと自動でビルドして実行できるの...

インストールと環境変数のパスを追加した後に、コマンドプロンプトからgcc --versionで表示される情報を確認してください。以下のような表示になっていれば、Windowsネイティブ環境向けのgccが無事にインストールされています。

gcc (GCC) 15.2.0
Copyright (C) 2025 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Linux / Macの場合のC言語開発環境を準備する方法

LinuxやmacOSでは、標準でgccコマンドが使えます。コマンドラインからgcc --versionで確認して、バージョンが表示されない場合は以下でインストールできます。

なお、macOSの場合はgccコマンドを使用しても実際にコンパイルに使用されるコンパイラはClangです。

Ubuntu / Debianのビルドツールのインストール

以下のコマンドで、gccやmakeなど基本的なビルドツールをまとめてインストールできます。

sudo apt-get install build-essential

sudoコマンドを使うとパスワードの入力を求められます。その場合は、Ubuntuのインストール時に設定したパスワードを入力してください。

参考リンク

build-essentialとは - Qiita
build-essentialとは 名前の通り, 開発に必須のビルドツールを提供しているパッケージ. gcc(GNU C Compiler)とかg++(GNU C++ Compiler), makeとかその他色々入るらしい. aptが使える...

macOSのコマンドラインツールのインストール

macOSでは、以下のコマンドでXcodeのコマンドラインツール(Xcode Command Line Tools)をインストールします。

xcode-select --install

Xcode本体は数GBと大容量ですが、この方法で入るのは開発ツールのみです。

LinuxとmacOSは、基本的にビルドツールをインストールするだけでパスが通っているので、Windowsネイティブ環境のように手動でPATHを設定する必要はありません。

ACOからGPLファイルに変換するプログラム「aco2gpl.c」を入手する方法

「aco2gpl.c」のソースコードはGitHubで公開されています。Gitを使わなくても、ブラウザから簡単にダウンロードできます。

「aco2gpl.c」のダウンロード手順

  1. GitHubの該当ページを開きます。

    GitHub - baskerville/aco2gpl: Converts a Photoshop palette to a GIMP palette
    Converts a Photoshop palette to a GIMP palette. Contribute to baskerville/aco2gpl development by creating an account on ...
  2. 「Code」ボタンをクリックします。

  3. 画面右上付近にある「Code」(緑色)ボタンをクリックします。

  4. 「Download ZIP」を選択します。

  5. 表示されたメニューの一番下にある「Download ZIP」をクリックします。

  6. ZIPファイルを解凍します。

  7. ダウンロードしたZIPファイルを右クリックし、「すべて展開」するか、解凍ソフトで展開します。

解凍したフォルダ内の「aco2gpl.c」ファイルを、次の章で説明する手順でコンパイルします。macOSやWSL上のUbuntu等のLinux系OSでは基本的にLinux向けのコマンドが使用可能です。

gccでコンパイルして「aco2gpl」を実行する方法

WSL上のUbuntuの利用を想定してLinux向けのコマンドで説明します。

Windowsのネイティブ環境向けのgccと、WindowsのコマンドプロンプトやPowerShellを利用したい場合はコマンドの形式が違うのでWindowsネイティブ環境でCLIを使う場合の補足説明Windowsネイティブ環境でgccを使う場合の補足説明をご覧ください。

「aco2gpl.c」のコンパイルと実行手順の概要

  1. ダウンロードしたファイルを解凍したフォルダをCLIで開く
  2. gccでソースコードをコンパイルする
  3. 変換したいACOファイルを実行ファイルと同じフォルダにコピーする
  4. 実行ファイルを使ってACOファイルからGPLファイルに一括変換する

「aco2gpl.c」のコンパイルと実行手順の解説

手順1:ダウンロードしたファイルを解凍したフォルダをCLIで開く

まず、GitHubなどからダウンロードしたファイルを解凍した「aco2gpl.c」があるフォルダをCLI(コマンドラインインターフェース)で開きます。この手順以降のコマンドラインでの作業はすべて「aco2gpl.c」が配置されたフォルダの中で行う必要があります。コンテキストメニューでカレントディレクトリ(作業するフォルダのこと)を簡単に開く方法はWSL上のUbuntuを利用して「Linuxシェルをここに開く」場合をご覧ください。

例えば、Windowsのデスクトップにaco2gpl-master.zipを解凍してできたフォルダの場合は、WSLのUbuntu上では以下のようなパスで表します。

/mnt/c/Users/UserName/Desktop/aco2gpl-master

このフォルダをCLI上で開きたい場合は以下のようにcdコマンドを使用します。

cd /mnt/c/Users/UserName/Desktop/aco2gpl-master

※UserNameの部分はWindowsでログイン中のユーザー名に置き換えてください。

cd(Change Directory)コマンドは作業するフォルダ(カレントディレクトリ)を変更するためのコマンドです。

ファイルとディレクトリに関するコマンドについてはこちらが参考になります。

ファイルとディレクトリの基本操作(連載第2回/25回) - Qiita
はじめに Linuxでのファイルとディレクトリの基本的な操作方法を紹介します。 これらのコマンドは日常的な作業で頻繁に使用されます。 コマンド説明 touch - 空ファイル作成 touch コマンドを使用すると、空のファイルを簡単に作成で...
CLI上でのコマンドのコピー&ペーストについて

CLI(コマンドラインインターフェース)上でコピーペーストのショートカットキーを使いたい場合、注意が必要です。

多くのアプリケーションが採用しているCtrlCでコピー、CtrlVで貼り付けのショートカットキーですが、CLIでは役割が異なります。

CLIのキーボードショートカット
OS Ctrl+C Ctrl+V コピー 貼り付け(ペースト) 備考(キーの役割)

Linux

プロセスを
強制終了

特殊文字の
入力開始

CtrlShiftC

右クリックまたはCtrlShiftV

CtrlC は強制終了

Shiftの追加でコピー&ペースト

Windows

プロセスを
強制終了

設定により
変更可能

CtrlShiftC

右クリックまたはCtrlShiftV

CtrlCは強制終了

最新のWindowsターミナルでは一般的なコピペ操作に対応可能

macOS

プロセスを
強制終了

特殊文字の
入力開始

CmdC

CmdV

CtrlCは強制終了

Cmdキーの使用でmacOSの一般アプリの操作と統一

CLIのCtrlCは実行中のプロセスを強制終了するショートカットキーです。

コピーしたコマンドをCLIに貼り付けたい場合はCtrlShiftVが便利です。

WSL上のUbuntuを利用して「Linuxシェルをここに開く」場合

WindowsにWSLを利用してUbuntuをインストールすると、フォルダをShift+右クリックして開くコンテキストメニューの表示に「Linuxシェルをここに開く」が追加されます。「Linuxシェルをここに開く」を利用すると、そのディレクトリ(フォルダのこと)をカレントディレクトリ(今から作業に使うフォルダのこと)としてUbuntuのターミナルで開いた状態にできます。

LinuxやmacOSを利用する場合

ターミナルを開いて以下のコマンドを実行します。

cd ~/Downloads/aco2gpl-main

~/Downloads/aco2gpl-mainの部分は、実際にダウンロードしたZIPファイルを解凍したフォルダのパスに置き換えてください。

Linuxのディストリビューションによってはファイルマネージャーの右クリックメニューから任意のディレクトリをターミナルで開く方法があります。

初心者向け!Linuxターミナルの基本的な使い方 | たのいけブログ
Linuxを使う上で避けては通れないターミナル操作。 今回は、初心者向けに、 ・ターミナルとは何か・ターミナルでできること・ターミナルの基本的な使い方 を紹介したいと思います。 Linuxを普段使いしている場合はターミナルをほとんど使いませ

macOSもターミナルで任意のディレクトリをFinderから直接開ける機能があります。

Macで新しい「ターミナル」ウインドウとタブを開く
Macの「ターミナル」で、デフォルトプロファイル、アクティブなウインドウまたはタブと同じプロファイル、または指定するプロファイルを使って、新しいウインドウやタブを開きます。
Windowsネイティブ環境でCLIを使う場合の補足説明

WindowsでもPowerShellやコマンドプロンプトなどのCLI(コマンドラインインターフェース)でcdコマンドを使ってコマンドラインでフォルダに移動できます。

Windows環境の場合はパスが長くて移動が大変な場合があるので、ファイルエクスプローラーでダウンロードしたファイルのあるフォルダの親フォルダを開き(デスクトップに解凍した場合はデスクトップで)、解凍したファイルが含まれるフォルダをShift+右クリックしてコンテキストメニューを表示し、「PowerShellウィンドウで開く」や「ターミナルで開く」でそのディレクトリ(フォルダのこと)をカレントディレクトリ(今から作業に使うフォルダのこと)としてコマンドラインで開いた状態にできます。

手順2:gccでソースコードをコンパイルする

次のコマンドで「aco2gpl.c」をコンパイルします。コマンドを入力してEnterキーを押すと実行されます。

gcc -o aco2gpl aco2gpl.c
  • aco2gpl.c → ソースファイル
  • -o aco2gpl → 出力される実行ファイル名をaco2gplに指定

成功すると、同じフォルダに「aco2gpl」という実行ファイルが生成されます。

コンパイルに失敗した場合はエラーメッセージが出ますが、成功した場合はすぐにプロンプトが返ってきて次のコマンド入力が可能な状態になります。

プロンプトが何分経っても返ってこない場合はCtrlCを押すとプロセスを強制終了できます。

Linuxのプロセスを強制終了についてはこちらをご覧ください。

LinuxにおけるCtrl+Cの仕組み - Qiita
この記事は、IPFactory Advent Calendar 2022 の23日目の記事です。 はじめに Linuxをよく使用している人なら、お世話になったことも多いであろう「Ctrl+C」。 システムレベルではどんなことが起こっているの...

手順3:変換したいACOファイルを実行ファイルと同じフォルダにコピーする

変換したいACOファイルのコピーはコマンドラインからも可能ですが、ファイルエクスプローラーでコピーと貼り付けの操作をして大丈夫です。

手順4:実行ファイルを使って変換する

入力ファイルと出力ファイルのパスを指定して「aco2gpl」コマンドを実行します。

以下の例のファイル名の拡張子より前半の部分は、変換前のファイル名・変換後に使用するファイル名に変更してください。

ファイル名に使用する文字と入力時に便利な機能についての説明もありますので、ご確認ください。

aco2gplには上書き防止機能がないので、入力ファイル名と出力ファイル名を同じにすると入力ファイルが上書きされて変換に失敗しますのでご注意ください。

コマンドを入力してEnterキーを押すと実行されます。

./aco2gpl < input.aco > output.gpl
  • input.aco → 変換したいACOファイル名
  • output.gpl → 変換後に保存するGPLファイル名

先頭に付いている「.」はカレントディレクトリを表します。「./」でカレントディレクトリ直下にあるという意味です。

前の手順で変換前のファイルを実行ファイルと同じフォルダに配置しているため、ファイル名の指定だけで問題ありません。変換後のファイルは実行ファイルと同じフォルダに作成されます。

実行ファイルと同じフォルダに変換前のファイルがある場合はファイル名だけの指定でいいですが、変換前のファイルが実行ファイルと違うフォルダにある場合は絶対パスまたは相対パスでファイルを指定する必要があります。

ACOファイルからGPLファイルに変換が成功した場合は次の例のようなメッセージが返ってきて、コマンド入力可能状態になります。

変換に成功した場合の表示例

reading ACO stream version: 1 (photoshop < 7.0)
140 colors in this file
reading ACO stream version: 2 (photoshop >= 7.0)
140 colors in this file
Generating GPL...
Done.

変換に失敗した場合は以下の例のようなエラーメッセージが出ます。

入力ファイルが空の場合の表示例(コマンド実行時に入力・出力ファイル名を同じにしてしまった場合)

Generating GPL...
No data!Done.

Windowsネイティブ環境で変換に失敗した場合の表示例

reading ACO stream version: 1 (photoshop < 7.0)
140 colors in this file
reading ACO stream version: 2 (photoshop >= 7.0)
140 colors in this file
Unexpected end of file!

コマンドの打ち間違いなどでプロンプトが何分経っても返ってこない場合はCtrlCを押すと実行中のコマンドを強制終了できます。

Linuxの基本的なコマンドについてはこちらをご覧ください。

【Linux】Linuxコマンドまとめ - Qiita
概要 Linuxを勉強していてこれだけは覚えたほうがいい基本的なコマンドについてまとめてみました。 Linuxの基本的な知識については過去の記事にあるので是非そちらも参照してみてください。 ショートカットキーについて 『Mac』 Linux...

ファイル名に使用する文字と入力時に便利な機能について

ファイル名に半角スペースが含まれる場合の注意

出力ファイル名に半角スペースの使用は避けてください。ファイル名に半角スペースを使用したい場合は、出力ファイルが生成された後に変更することを推奨します。

入力ファイル名に半角スペースが含まれている場合は半角スペースを使用しない名前に変更するか、半角スペースをエスケープするか、ファイル名を引用符で囲む必要があります。

ファイル名に半角スペースを使わない方がいい理由

よくやりがちなのが、My Palette.acoのように単語の区切りで半角スペースをファイル名に入れることです。

コマンドライン操作では半角スペースは区切り文字として扱われます。

そのため、

./aco2gpl < My Palette.aco > My Palette.gpl

と入力すると、シェルは

./aco2gpl < My ← ここで1つ目のファイル名終了

Palette.aco ← これを引数と認識

という風に分けてしまい、「ファイルがありません」というエラーになります。

エラー表示例

-bash: My: No such file or directory
コマンドラインで使用したい場合、ファイル名はどうすればいいのか?
  • スペースを入れない(MyPalette.acoなど)
  • アンダースコアで区切る(My_Palette.aco)
半角スペースをファイル名にどうしても使いたい場合は
  • ファイル名を引用符で囲む:"My Palette.aco"
  • バックスラッシュでエスケープ:My\ Palette.aco
  • Windowsネイティブ環境の場合、コマンドラインのバックスラッシュは、ファイルパスの区切り文字としても使われるので引用符で囲みます。
  • 引用符で囲む場合、LinuxやmacOSではシングルクォーテーションまたはダブルクォーテーションを使用できます。
  • Windowsのコマンドプロンプト(cmd.exe)はダブルクォーテーションのみに対応しています。
  • WindowsのPowerShellはシングルクォーテーション・ダブルクォーテーションの両方が使えます。

対策は取れますが慣れないうちは半角スペースを使わない名前にするのが一番安全です。

タブ補完機能について

コマンドラインでファイル名を入力する時、長い名前を全部打つのは大変ですよね。

そこで役に立つのが「タブ補完」という機能です。

タブ補完の使い方

ファイル名やフォルダ名を途中まで入力してTabキーを押します。

一致するものがあれば、自動で残りを補ってくれます。

./aco2gpl < My

ここでTabキーを押すと

./aco2gpl < MyPalette.aco

このように自動で補完されます。

同じ文字で始まるファイルが複数ある場合は、Tabキーを何回か押すと候補が次々と入れ替わり、繰り返し表示されます。

タブ補完はどんな場面で便利なのか?
  • 長いファイル名を入力する時
  • フォルダを深くたどる時(cd Doc → cd Documents/ など)
  • 入力ミスを防ぎたい時
  • 半角スペースを含むファイル名を入力したい時

実はタブ補完機能でファイル名を補完した際、半角スペースを含むファイル名を補完した場合は自動で半角スペースをエスケープする機能や、ファイル名を引用符で囲んでくれる機能があります。(タブ補完機能はお使いのCLIの種類により挙動が異なります。)

タブ補完機能でファイル名の指定が楽になる

出力ファイル名の拡張子より前の部分を入力ファイル名の拡張子より前の部分と同じにしたい場合も、タブ補完機能で入力ファイル名を補完して、backspaceキーで拡張子部分を消して、新たに拡張子を入力すれば簡単です。

./aco2gpl < MyPalette.aco > My

ここでTabキーを押すと

./aco2gpl < MyPalette.aco > MyPalette.aco

以上のように補完されます。

backspaceキーで拡張子「aco」を消した後に「gpl」と入力します。

./aco2gpl < MyPalette.aco > MyPalette.gpl

Windowsネイティブ環境でgccを使う場合の補足説明

Windowsネイティブ環境の場合、コマンドプロンプトやPowerShell上でMinGW-w64などのgccコンパイラを利用してコンパイルを行い、作成された実行ファイルをコマンドで実行します。

Windowsネイティブ環境のgccでコンパイルする場合
gcc -o aco2gpl.exe aco2gpl.c

Windowsネイティブ環境の場合は実行ファイルにaco2gpl.exeと付けますが、付けなくても拡張子「.exe」が実行ファイル名に追加されます。

Windowsネイティブ環境で実行ファイルを使って変換する場合
cmd /c ".\aco2gpl.exe < input.aco > output.gpl"

実行する時は、「.\」を付けます。「.」はカレントディレクトリを表します。Windowsネイティブ環境の場合、ファイルパスの区切り文字はバックスラッシュです。環境によってバックスラッシュは円記号として表示されます。

PowerShellの場合、「演算子 '<' は、今後の使用のために予約されています。」というメッセージが表示され、リダイレクト演算子の「<」が使用できません。

コマンドプロンプトの場合は「<」も使用できるのでPowerShell上でコマンドプロンプト(cmd.exe)を呼び出す形で実行します。

機能追加版「aco2gpl-utf8」について

GitHub - sorano-emaki/aco2gpl-utf8
Contribute to sorano-emaki/aco2gpl-utf8 development by creating an account on GitHub.

「aco2gpl.c」を改造して機能追加したマルチバイト文字対応版です。

Adobe Photoshopのカラーパレットファイル(.aco)をGIMPパレットファイル(.gpl)に変換します。

標準版(aco2gpl-utf8.c)と日本語版(aco2gpl-utf8-jp.c)があり、「aco2gpl-utf8-jp.c」はコンソールメッセージの表示が日本語です。標準版と日本語版は機能的には同じですが、日本語版はソースコード内のコメントで処理の流れを解説しています。Windows環境の日本語表示の文字化け対策はしてありますが、日本語版のコンソールメッセージが文字化けした場合は標準版をお使いください。

基本的な使用方法は「aco2gpl」と同じです。

「aco2gpl-utf8」の特徴

  • UTF-8対応(日本語などのマルチバイト文字を含めた色名)
  • GPL形式のヘッダーを入力ファイル名から自動生成
  • RGB値を0–255で出力
  • ファイルの上書き防止処理を追加

入力ファイル名と出力ファイル

  • 入力: .aco ファイル
  • 出力: .gpl ファイル(UTF-8)

コンパイル方法

Linux / macOS / WSL (Ubuntu) でコンパイルする場合

gcc -o aco2gpl-utf8 aco2gpl-utf8-jp.c

Windowsネイティブ環境 (MinGW) でコンパイルする場合

gcc -o aco2gpl-utf8.exe aco2gpl-utf8-jp.c

使い方(コマンド)

Linux / macOS / WSL (Ubuntu) で実行する場合

./aco2gpl-utf8 input.aco output.gpl
  • input.aco : Adobe Color Swatchファイル名
  • output.gpl: 変換後のGIMPパレットファイル名

変換が成功すると、output.gplがGPLファイルとして生成されます。

ファイル名の引数指定を可能にしたので、半角スペースでコマンドと入力ファイル名と出力ファイル名を区切った形式で実行できます。

Windowsネイティブ環境 (MinGW) で実行する場合

.\aco2gpl-utf8.exe input.aco output.gpl

PowerShellのリダイレクト演算子が使用できない問題にも対応しているので、上記のコマンドをPowerShell上でそのまま実行できます。

出力ファイル

出力されるGPLファイルの項目

  • Name: → ACOファイル名をベースに自動設定
  • Columns: → デフォルトは16
  • RGB値は0-255表記
  • 色名はUTF-8で表示(日本語OK)
出力されるGPLファイルの例
GIMP Palette
Name: input
Columns: 16
#
255 0 0   赤
0 255 0   緑
0 0 255   青

ACOからGPL変換時の仕様

  • ACO v2に色名があればUTF-8で出力
  • 色名が空ならデフォルト名 "Untitled" を付与
  • 不明な色空間はスキップ
  • ACOのRGB値は 0-65535 → 0-255に変換

「aco2gpl-utf8」の無保証条項

このプログラムは無保証で提供されます。

このソフトウェアの使用によって生じたいかなる損害についても、

開発者は一切の責任を負いません。

まとめと次回予告

今回はC言語の話が多かったので少し難しく感じたかも知れません。プログラムというと大規模なアプリケーションをイメージするかもしれませんが、変換ツールなどの小規模なツールもあります。それらを利用するという選択肢が増えると、面倒な作業が自動化・効率化されて便利になります。

ただし、オープンソースのプログラムのほとんどはGPLライセンスで提供されており、基本的に無保証です。実行する前にソースコードをよく確認し、ご自身の責任において利用してくださいね。

今回ご紹介したコードに悪意のある処理は含まれていないのですが、それでも動作環境によって予期せぬ不具合が発生する可能性は0ではないからです。

特に、出所不明・作者不明・詳細不明な実行ファイル(.exeのファイルなど)はコンピュータに甚大な損害を与える場合があるので、無闇に使用しないようにしましょう。

次回は、シェルスクリプトを利用して16進数のカラーコードからGPLファイルを自動生成する方法をご紹介します。

コメント

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