1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【効率化】RGB→カラーコード変換器を作ってみた

Last updated at Posted at 2021-02-11

オリジナルアプリを作成し始めたら、色を扱うためにRGBから16進数のカラーコードへ変換したい場面が増えてきました。 他にもいいツールはあるでしょうが、せっかくなので、自分で作ってみました。

Rubyの記述

f:id:lynx-levin:20201103130757p:plain

  • まずは、R、G、Bをそれぞれ入力します。
  • その後、7行目でそれぞれ16進数に変換し、つなげます。

詳しく解説

format("%X", R)
  ・・・Rを16進数に直す
(例) 200 → "C8" / 15 → "F"
  →これを、2桁表示にしたい

format("%2X", R)
  ・・・「2」を付ける
(例) 200 → "C8" / 15 → " F"
  →1桁目の半角スペースを0にしたい

format("%02X", R)
  ・・・「0」を付ける
(例) 200 → "C8" / 15 → "0F"
  →GとBも加えたい

format("%02X%02X%02X", R, G, B)
  ・・・それぞれ併せる
(例) R=200 G=15 B=1 → "C80F01"

format("#%02X%02X%02X", R, G, B)
  ・・・さらに、頭に「#」を付けると完成
(例) R=200 G=15 B=1 → "#C80F01"

起動方法

これで変換器自体はできましたが、いちいちターミナルを開いて、
ruby ~/ruby/RGBconverter.rbのように入力するのは手間だし、それなら手で計算したほうが早いです。

なので、ショートカットダブルクリック(またはSpotlight検索)ですぐ起動できるようにします。 (これよりもっとスマートな方法がありそうですが・・・)

RGBconverter.commandという名前で、以下の内容のファイルを作成します。

f:id:lynx-levin:20201103132414p:plain

※内容はターミナルでルビーを開くときのコマンドで、ruby (RGBの絶対パス)

その後、このまま開こうとすると下記のようなメッセージが出て、実行することができません。

f:id:lynx-levin:20201103132642p:plain

そこで、
chmod a+x ~/Desktop/RGBconverter.command
のようにアクセス権限を付与してやります。

これで、完成です。

SpotlightでRGBconverter.commandを検索してやって実行すると、ターミナル が開いて入力待ちになるので、RGBを順に入力してやるとカラーコードを表示してくれます。

【実行画面】
f:id:lynx-levin:20201103133159p:plain

追記

上記のRubyで空白を0に置き換えたところについて

format("%02X", R)
 (例) 200 → "C8" 15 → "0F"

「0」の代わりに他の文字「a」などを入れても、その文字に置き換えてくれるわけではないようです。
何か方法があるのかもしれませんが・・・

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?