Help us understand the problem. What is going on with this article?

Tokyo2020 カレンダーと i18n モジュール

読むのが面倒な人向けのまとめ

week コマンドをインストールして ~/.weekrc をこう設定するといいよ、何ができるかは week -l を見て、という話。

~/.weekrc
option default --i18n-v --theme tokyo2020

week コマンドの続き

スクリーンショット 2020-06-15 10.31.11.png

以前の記事。

--tokyo2020 オプション

来年開催予定の東京オリンピックの成功を祈って --tokyo2020 オプションを作ってみた。

スクリーンショット 2020-06-15 10.31.11.png

スクリーンショット 2020-06-15 10.31.40.png

配色については、公式発表されているデータに加え、このサイトを参考にさせて頂いた。プログラムを変更して、曜日毎に異なる色を設定できるようにして、月曜から金曜日に五輪カラーを割り当てた。それ以外はエンブレムカラーだが、こうしてみるとエンブレムの藍色以外、東京五輪特有の色というのは使われていないのだなと思った。

他のカラーテーマでは曜日の色は定義していないので、先に --tokyo2020 オプションを適用すると結果的に曜日の色だけが残り、これはこれでいい感じだ1

スクリーンショット 2020-06-15 10.47.01.png

ところで、この記事で使っている画像は iTerm2 の24ビットカラーで表示したものだ。前の記事にも書いたように week コマンドは24ビット表現で色を指定することができるが、通常は 6x6x6 の216色に変換して表示する。macOS 標準のターミナルで実行するとこのように表示される。

スクリーンショット 2020-06-28 07.20.01.png

エンブレムの微妙な色 (#ee334e) は表現できず、赤っぽくなってしまう2。Tokyo2020 のイメージとは少し違うのだが、クリスマスっぽくって結構いいんじゃないかとも思っている。

追記

その後、Getopt::EX::Colormap のアルゴリズムを見直して、#ee334e501 にマップされるようになった。バージョン 0.13 以降では、次のように表示されるはずだ。若干明るいが、以前よりはだいぶ近くなったのではないだろうか。

スクリーンショット 2020-06-29 11.30.59.png

i18n モジュール

オリンピックなのだから、カレンダーも国際色豊かにしたい。week コマンドは cal コマンドの結果を加工しているので、何もせずとも locale 対応している。というか、どんな文字列が来ても処理できるよう、それなりに工夫している。だからこんな風に環境変数を設定すれば簡単に各国のカレンダーを表示できる。

スクリーンショット 2020-06-15 12.30.53.png

i18n モジュールは、この作業を簡単にするものだ。自国語の設定はログイン時に一度やっておけばいいが、馴染みのない国のロケールコードを知るのは簡単ではない。たとえば、ブラジルの場合 pt_BR を指定するなんて普通の日本人は覚えてないだろう。でもブラジルが BR であることは知っているかもしれない。-M18n モジュールをロードすると、以下のオプションが設定されて --br でブラジルのカレンダーを表示することができる。

option --BR    &setenv(LANG=pt_BR) # Brazil / Portuguese
option --br    &setenv(LANG=pt_BR) # Brazil / Portuguese
option --pt_BR &setenv(LANG=pt_BR) # Brazil / Portuguese
option --ptbr  &setenv(LANG=pt_BR) # Brazil / Portuguese

スクリーンショット 2020-06-15 12.41.12.png

オプションの一覧は week -l で表示することができる。macOS 10.15 (Catalina) で実行すると次のようになる。詳しい説明は Getopt::EX::i18n を見ていただきたい。

$ week -l
option --AM    &setenv(LANG=hy_AM) # Armenia / Armenian
option --hy    &setenv(LANG=hy_AM) # Armenia / Armenian
option --hy_AM &setenv(LANG=hy_AM) # Armenia / Armenian
option --hyam  &setenv(LANG=hy_AM) # Armenia / Armenian
option --AT    &setenv(LANG=de_AT) # Austria / German
option --at    &setenv(LANG=de_AT) # Austria / German
option --de_AT &setenv(LANG=de_AT) # Austria / German
option --deat  &setenv(LANG=de_AT) # Austria / German
option --AU    &setenv(LANG=en_AU) # Australia / English
option --au    &setenv(LANG=en_AU) # Australia / English
option --en    &setenv(LANG=en_AU) # Australia / English
option --en_AU &setenv(LANG=en_AU) # Australia / English
option --enau  &setenv(LANG=en_AU) # Australia / English
option --fr_BE &setenv(LANG=fr_BE) # Belgium / French
option --frbe  &setenv(LANG=fr_BE) # Belgium / French
option --nl_BE &setenv(LANG=nl_BE) # Belgium / Dutch
option --nlbe  &setenv(LANG=nl_BE) # Belgium / Dutch
option --BG    &setenv(LANG=bg_BG) # Bulgaria / Bulgarian
option --bg    &setenv(LANG=bg_BG) # Bulgaria / Bulgarian
option --bg_BG &setenv(LANG=bg_BG) # Bulgaria / Bulgarian
option --bgbg  &setenv(LANG=bg_BG) # Bulgaria / Bulgarian
option --BR    &setenv(LANG=pt_BR) # Brazil / Portuguese
option --br    &setenv(LANG=pt_BR) # Brazil / Portuguese
option --pt_BR &setenv(LANG=pt_BR) # Brazil / Portuguese
option --ptbr  &setenv(LANG=pt_BR) # Brazil / Portuguese
option --BY    &setenv(LANG=be_BY) # Belarus / Belarusian
option --be    &setenv(LANG=be_BY) # Belarus / Belarusian
option --be_BY &setenv(LANG=be_BY) # Belarus / Belarusian
option --beby  &setenv(LANG=be_BY) # Belarus / Belarusian
option --by    &setenv(LANG=be_BY) # Belarus / Belarusian
option --en_CA &setenv(LANG=en_CA) # Canada / English
option --enca  &setenv(LANG=en_CA) # Canada / English
option --fr_CA &setenv(LANG=fr_CA) # Canada / French
option --frca  &setenv(LANG=fr_CA) # Canada / French
option --de_CH &setenv(LANG=de_CH) # Switzerland / German
option --dech  &setenv(LANG=de_CH) # Switzerland / German
option --fr_CH &setenv(LANG=fr_CH) # Switzerland / French
option --frch  &setenv(LANG=fr_CH) # Switzerland / French
option --it_CH &setenv(LANG=it_CH) # Switzerland / Italian
option --itch  &setenv(LANG=it_CH) # Switzerland / Italian
option --CN    &setenv(LANG=zh_CN) # China / Chinese
option --cn    &setenv(LANG=zh_CN) # China / Chinese
option --zh    &setenv(LANG=zh_CN) # China / Chinese
option --zh_CN &setenv(LANG=zh_CN) # China / Chinese
option --zhcn  &setenv(LANG=zh_CN) # China / Chinese
option --CZ    &setenv(LANG=cs_CZ) # Czech Republic / Czech
option --cs    &setenv(LANG=cs_CZ) # Czech Republic / Czech
option --cs_CZ &setenv(LANG=cs_CZ) # Czech Republic / Czech
option --cscz  &setenv(LANG=cs_CZ) # Czech Republic / Czech
option --cz    &setenv(LANG=cs_CZ) # Czech Republic / Czech
option --DE    &setenv(LANG=de_DE) # Germany / German
option --de    &setenv(LANG=de_DE) # Germany / German
option --de_DE &setenv(LANG=de_DE) # Germany / German
option --dede  &setenv(LANG=de_DE) # Germany / German
option --DK    &setenv(LANG=da_DK) # Denmark / Danish
option --da    &setenv(LANG=da_DK) # Denmark / Danish
option --da_DK &setenv(LANG=da_DK) # Denmark / Danish
option --dadk  &setenv(LANG=da_DK) # Denmark / Danish
option --dk    &setenv(LANG=da_DK) # Denmark / Danish
option --EE    &setenv(LANG=et_EE) # Estonia / Estonian
option --ee    &setenv(LANG=et_EE) # Estonia / Estonian
option --et    &setenv(LANG=et_EE) # Estonia / Estonian
option --et_EE &setenv(LANG=et_EE) # Estonia / Estonian
option --etee  &setenv(LANG=et_EE) # Estonia / Estonian
option --ES    &setenv(LANG=es_ES) # Spain / Spanish
option --ca    &setenv(LANG=ca_ES) # Spain / Catalan; Valencian
option --ca_ES &setenv(LANG=ca_ES) # Spain / Catalan; Valencian
option --caes  &setenv(LANG=ca_ES) # Spain / Catalan; Valencian
option --es    &setenv(LANG=es_ES) # Spain / Spanish
option --es_ES &setenv(LANG=es_ES) # Spain / Spanish
option --eses  &setenv(LANG=es_ES) # Spain / Spanish
option --eu    &setenv(LANG=eu_ES) # Spain / Basque
option --eu_ES &setenv(LANG=eu_ES) # Spain / Basque
option --eues  &setenv(LANG=eu_ES) # Spain / Basque
option --ET    &setenv(LANG=am_ET) # Ethiopia / Amharic
option --am    &setenv(LANG=am_ET) # Ethiopia / Amharic
option --am_ET &setenv(LANG=am_ET) # Ethiopia / Amharic
option --amet  &setenv(LANG=am_ET) # Ethiopia / Amharic
option --FI    &setenv(LANG=fi_FI) # Finland / Finnish
option --fi    &setenv(LANG=fi_FI) # Finland / Finnish
option --fi_FI &setenv(LANG=fi_FI) # Finland / Finnish
option --fifi  &setenv(LANG=fi_FI) # Finland / Finnish
option --FR    &setenv(LANG=fr_FR) # France / French
option --fr    &setenv(LANG=fr_FR) # France / French
option --fr_FR &setenv(LANG=fr_FR) # France / French
option --frfr  &setenv(LANG=fr_FR) # France / French
option --GB    &setenv(LANG=en_GB) # United Kingdom / English
option --en_GB &setenv(LANG=en_GB) # United Kingdom / English
option --engb  &setenv(LANG=en_GB) # United Kingdom / English
option --gb    &setenv(LANG=en_GB) # United Kingdom / English
option --GR    &setenv(LANG=el_GR) # Greece / Greek, Modern (1453-)
option --el    &setenv(LANG=el_GR) # Greece / Greek, Modern (1453-)
option --el_GR &setenv(LANG=el_GR) # Greece / Greek, Modern (1453-)
option --elgr  &setenv(LANG=el_GR) # Greece / Greek, Modern (1453-)
option --gr    &setenv(LANG=el_GR) # Greece / Greek, Modern (1453-)
option --HK    &setenv(LANG=zh_HK) # Hong Kong / Chinese
option --hk    &setenv(LANG=zh_HK) # Hong Kong / Chinese
option --zh_HK &setenv(LANG=zh_HK) # Hong Kong / Chinese
option --zhhk  &setenv(LANG=zh_HK) # Hong Kong / Chinese
option --HR    &setenv(LANG=hr_HR) # Croatia / Croatian
option --hr    &setenv(LANG=hr_HR) # Croatia / Croatian
option --hr_HR &setenv(LANG=hr_HR) # Croatia / Croatian
option --hrhr  &setenv(LANG=hr_HR) # Croatia / Croatian
option --HU    &setenv(LANG=hu_HU) # Hungary / Hungarian
option --hu    &setenv(LANG=hu_HU) # Hungary / Hungarian
option --hu_HU &setenv(LANG=hu_HU) # Hungary / Hungarian
option --huhu  &setenv(LANG=hu_HU) # Hungary / Hungarian
option --IE    &setenv(LANG=en_IE) # Ireland / English
option --en_IE &setenv(LANG=en_IE) # Ireland / English
option --enie  &setenv(LANG=en_IE) # Ireland / English
option --ie    &setenv(LANG=en_IE) # Ireland / English
option --IL    &setenv(LANG=he_IL) # Israel / Hebrew
option --he    &setenv(LANG=he_IL) # Israel / Hebrew
option --he_IL &setenv(LANG=he_IL) # Israel / Hebrew
option --heil  &setenv(LANG=he_IL) # Israel / Hebrew
option --il    &setenv(LANG=he_IL) # Israel / Hebrew
option --IS    &setenv(LANG=is_IS) # Iceland / Icelandic
option --is    &setenv(LANG=is_IS) # Iceland / Icelandic
option --is_IS &setenv(LANG=is_IS) # Iceland / Icelandic
option --isis  &setenv(LANG=is_IS) # Iceland / Icelandic
option --IT    &setenv(LANG=it_IT) # Italy / Italian
option --it    &setenv(LANG=it_IT) # Italy / Italian
option --it_IT &setenv(LANG=it_IT) # Italy / Italian
option --itit  &setenv(LANG=it_IT) # Italy / Italian
option --JP    &setenv(LANG=ja_JP) # Japan / Japanese
option --ja    &setenv(LANG=ja_JP) # Japan / Japanese
option --ja_JP &setenv(LANG=ja_JP) # Japan / Japanese
option --jajp  &setenv(LANG=ja_JP) # Japan / Japanese
option --jp    &setenv(LANG=ja_JP) # Japan / Japanese
option --KR    &setenv(LANG=ko_KR) # Korea, Republic of / Korean
option --ko    &setenv(LANG=ko_KR) # Korea, Republic of / Korean
option --ko_KR &setenv(LANG=ko_KR) # Korea, Republic of / Korean
option --kokr  &setenv(LANG=ko_KR) # Korea, Republic of / Korean
option --kr    &setenv(LANG=ko_KR) # Korea, Republic of / Korean
option --KZ    &setenv(LANG=kk_KZ) # Kazakhstan / Kazakh
option --kk    &setenv(LANG=kk_KZ) # Kazakhstan / Kazakh
option --kk_KZ &setenv(LANG=kk_KZ) # Kazakhstan / Kazakh
option --kkkz  &setenv(LANG=kk_KZ) # Kazakhstan / Kazakh
option --kz    &setenv(LANG=kk_KZ) # Kazakhstan / Kazakh
option --LT    &setenv(LANG=lt_LT) # Lithuania / Lithuanian
option --lt    &setenv(LANG=lt_LT) # Lithuania / Lithuanian
option --lt_LT &setenv(LANG=lt_LT) # Lithuania / Lithuanian
option --ltlt  &setenv(LANG=lt_LT) # Lithuania / Lithuanian
option --NL    &setenv(LANG=nl_NL) # Netherlands / Dutch
option --nl    &setenv(LANG=nl_NL) # Netherlands / Dutch
option --nl_NL &setenv(LANG=nl_NL) # Netherlands / Dutch
option --nlnl  &setenv(LANG=nl_NL) # Netherlands / Dutch
option --NO    &setenv(LANG=no_NO) # Norway / Norwegian
option --no    &setenv(LANG=no_NO) # Norway / Norwegian
option --no_NO &setenv(LANG=no_NO) # Norway / Norwegian
option --nono  &setenv(LANG=no_NO) # Norway / Norwegian
option --NZ    &setenv(LANG=en_NZ) # New Zealand / English
option --en_NZ &setenv(LANG=en_NZ) # New Zealand / English
option --ennz  &setenv(LANG=en_NZ) # New Zealand / English
option --nz    &setenv(LANG=en_NZ) # New Zealand / English
option --PL    &setenv(LANG=pl_PL) # Poland / Polish
option --pl    &setenv(LANG=pl_PL) # Poland / Polish
option --pl_PL &setenv(LANG=pl_PL) # Poland / Polish
option --plpl  &setenv(LANG=pl_PL) # Poland / Polish
option --PT    &setenv(LANG=pt_PT) # Portugal / Portuguese
option --pt    &setenv(LANG=pt_PT) # Portugal / Portuguese
option --pt_PT &setenv(LANG=pt_PT) # Portugal / Portuguese
option --ptpt  &setenv(LANG=pt_PT) # Portugal / Portuguese
option --RO    &setenv(LANG=ro_RO) # Romania / Romanian
option --ro    &setenv(LANG=ro_RO) # Romania / Romanian
option --ro_RO &setenv(LANG=ro_RO) # Romania / Romanian
option --roro  &setenv(LANG=ro_RO) # Romania / Romanian
option --RU    &setenv(LANG=ru_RU) # Russian Federation / Russian
option --ru    &setenv(LANG=ru_RU) # Russian Federation / Russian
option --ru_RU &setenv(LANG=ru_RU) # Russian Federation / Russian
option --ruru  &setenv(LANG=ru_RU) # Russian Federation / Russian
option --SE    &setenv(LANG=sv_SE) # Sweden / Swedish
option --se    &setenv(LANG=sv_SE) # Sweden / Swedish
option --sv    &setenv(LANG=sv_SE) # Sweden / Swedish
option --sv_SE &setenv(LANG=sv_SE) # Sweden / Swedish
option --svse  &setenv(LANG=sv_SE) # Sweden / Swedish
option --SI    &setenv(LANG=sl_SI) # Slovenia / Slovenian
option --si    &setenv(LANG=sl_SI) # Slovenia / Slovenian
option --sl    &setenv(LANG=sl_SI) # Slovenia / Slovenian
option --sl_SI &setenv(LANG=sl_SI) # Slovenia / Slovenian
option --slsi  &setenv(LANG=sl_SI) # Slovenia / Slovenian
option --SK    &setenv(LANG=sk_SK) # Slovakia / Slovak
option --sk    &setenv(LANG=sk_SK) # Slovakia / Slovak
option --sk_SK &setenv(LANG=sk_SK) # Slovakia / Slovak
option --sksk  &setenv(LANG=sk_SK) # Slovakia / Slovak
option --TR    &setenv(LANG=tr_TR) # Turkey / Turkish
option --tr    &setenv(LANG=tr_TR) # Turkey / Turkish
option --tr_TR &setenv(LANG=tr_TR) # Turkey / Turkish
option --trtr  &setenv(LANG=tr_TR) # Turkey / Turkish
option --TW    &setenv(LANG=zh_TW) # Taiwan, Province of China / Chinese
option --tw    &setenv(LANG=zh_TW) # Taiwan, Province of China / Chinese
option --zh_TW &setenv(LANG=zh_TW) # Taiwan, Province of China / Chinese
option --zhtw  &setenv(LANG=zh_TW) # Taiwan, Province of China / Chinese
option --UA    &setenv(LANG=uk_UA) # Ukraine / Ukrainian
option --ua    &setenv(LANG=uk_UA) # Ukraine / Ukrainian
option --uk    &setenv(LANG=uk_UA) # Ukraine / Ukrainian
option --uk_UA &setenv(LANG=uk_UA) # Ukraine / Ukrainian
option --ukua  &setenv(LANG=uk_UA) # Ukraine / Ukrainian
option --US    &setenv(LANG=en_US) # United States / English
option --en_US &setenv(LANG=en_US) # United States / English
option --enus  &setenv(LANG=en_US) # United States / English
option --us    &setenv(LANG=en_US) # United States / English
option --YU    &setenv(LANG=sr_YU) # Yugoslavia / Serbian
option --sr    &setenv(LANG=sr_YU) # Yugoslavia / Serbian
option --sr_YU &setenv(LANG=sr_YU) # Yugoslavia / Serbian
option --sryu  &setenv(LANG=sr_YU) # Yugoslavia / Serbian
option --yu    &setenv(LANG=sr_YU) # Yugoslavia / Serbian
option --ZA    &setenv(LANG=af_ZA) # South Africa / Afrikaans
option --af    &setenv(LANG=af_ZA) # South Africa / Afrikaans
option --af_ZA &setenv(LANG=af_ZA) # South Africa / Afrikaans
option --afza  &setenv(LANG=af_ZA) # South Africa / Afrikaans
option --za    &setenv(LANG=af_ZA) # South Africa / Afrikaans

このモジュールは week コマンド専用ではなく、Getopt::EX を利用するすべてのコマンドで使うことができる。さらに汎用の optex コマンドを使えば、任意のコマンドを実行することが可能だ。

$ optex -Mi18n::setopt=verbose date --it
LANG=it_IT (Italian / Italy)
Gio  4 Giu 2020 16:47:33 JST

設定

default.pm で以下のように設定してあるので、--i18n--i18n-v というオプションが利用可能になっている。両者の違いは、ロケール情報を最初に表示するかどうかだ。

App/week/default.pm
option --i18n   -Mi18n::setopt(dash=0,long=0,listopt=-l)
option --i18n-v -Mi18n::setopt(dash=0,long=0,verbose,listopt=-l)
autoload --i18n -l

~/.weekrc を以下のようにしておけば、デフォルトのテーマを tokyo2020 にし、明るい端末では --tokyo2020 が、暗い端末では --tokyo2020-rev が自動的に設定される。

~/.weekrc
option default --i18n-v --theme tokyo2020

インストール

cpan で公開しているので、cpanm (cpanminus) を使ってインストールします。

$ curl -sL http://cpanmin.us | perl - App::week

各国のカレンダー

デバッグのためにいろいろな国のカレンダーを見ていたのだが、これが結構面白い。もちろん言葉はさっぱりわからないが、なにしろカレンダーなので意味はわかっている。一番のお勧めは何かと聞かれたらエストニアだろうか。

なんとなく気に入ったカレンダー

Czech Republic / Czech

チェコ。毛が生えてるw

cs_CZ.png

Estonia / Estonian

エストニア。曜日が一文字で不安定なところが愛せる。

et_EE.png

Spain / Basque

バスク語。基本的に曜日が小文字で始まるとなんとなく可愛い。a, b, g, o など、まるっぽい字が多いせいもあるだろうか。

eu_ES.png

Finland / Finnish

フィンランド。テンテンがいい。

fi_FI.png

Hungary / Hungarian

hu_HU.png

Iceland / Icelandic

is_IS.png

Lithuania / Lithuanian

リトアニア。草生えてるw

lt_LT.png

Netherlands / Dutch

うさこちゃんの国。

nl_NL.png

Norway / Norwegian

オランダ語と似ているが、土曜日だけ似てない。

no_NO.png

Poland / Polish

pl_PL.png

Sweden / Swedish

sv_SE.png

Slovenia / Slovenian

sl_SI.png

Slovakia / Slovak

sk_SK.png

Yugoslavia / Serbian

sr_YU.png

文字が判別できないカレンダー

Armenia / Armenian

アルメニア。

hy_AM.png

Ethiopia / Amharic

エチオピア。
枠からはみ出てるし... しかも日曜日は右に、金曜日は左に...

am_ET.png

Israel / Hebrew

イスラエル。正しく表示されているのか判断できず。
ちなみに、これは iTerm だとちゃんと表示できますが、Apple_Terminal では表示が壊れます。

he_IL.png

かっこいいカレンダー

ギリシャ、カコイイ。ΔとかΣとかが日常で使われてるのかと思ったり。ギリシャでも円周率はπなんだろうか。なんだろうなあ。

Greece / Greek, Modern (1453-)

el_GR.png

Kazakhstan / Kazakh

金曜日とかキツキツw

kk_KZ.png

キリル文字っぽいカレンダー

Bulgaria / Bulgarian

bg_BG.png

Belarus / Belarusian

be_BY.png

Russian Federation / Russian

ru_RU.png

Ukraine / Ukrainian

uk_UA.png

アジア

漢字の国でも、それぞれ微妙に違う。香港と台湾は同じか。

China / Chinese

zh_CN.png

Hong Kong / Chinese

zh_HK.png

Japan / Japanese

ja_JP.png

Korea, Republic of / Korean

ko_KR.png

Taiwan, Province of China / Chinese

zh_TW.png

英語圏

これは、全部同じっぽい。ただし、OS によっては TuTh 以外を1文字で表示したり、右寄せと左寄せが違ったりとバリエーションがあって、テストコードを書くのには結構苦労したのだ。テストは LANG=C でしかしてないので、他の言語についてはわからない。

Australia / English

en_AU.png

Canada / English

en_CA.png

United Kingdom / English

en_GB.png

Ireland / English

en_IE.png

New Zealand / English

en_NZ.png

United States / English

en_US.png

South Africa / Afrikaans

af_ZA.png

その他

Austria / German

de_AT.png

Belgium / French

fr_BE.png

Belgium / Dutch

nl_BE.png

Brazil / Portuguese

水曜と木曜が同じだ。

pt_BR.png

Canada / French

fr_CA.png

Switzerland / German

de_CH.png

Switzerland / French

fr_CH.png

Switzerland / Italian

it_CH.png

Germany / German

de_DE.png

Denmark / Danish

da_DK.png

Spain / Catalan; Valencian

曜日が全部 d ではじまる。

ca_ES.png

Spain / Spanish

es_ES.png

France / French

fr_FR.png

Croatia / Croatian

hr_HR.png

Italy / Italian

it_IT.png

Portugal / Portuguese

pt_PT.png

Romania / Romanian

ro_RO.png

Turkey / Turkish

tr_TR.png


  1. 色の定義は曜日の行全体と、各曜日の文字に設定可能だ。Getopt::EX::Colormap モジュールは、このように色の設定範囲がオーバーラップしている場合、狭い範囲の色を保ったまま全体に色付けすることができる。これは、あまり他のライブラリには見られない特徴ではないかと思う。 

  2. これは変換アルゴリズムの問題でもあり、現在は #ee334e400 にマップされる。これを 501 にすると24ビットカラーに近い色になるので、そうなるようなアルゴリズムを検討しているところ。 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした