Windowsの16ビット色

投稿日: 更新日:

今日はWindowsXPでの16ビット色を、手探りで調べてみた。
とても疲れたけど、きっと誰かの役に立つはず。(^o^)
というか16ビットの環境での、レイヤード透過色指定に使いたかった。
 
はそれぞれ32色(5ビット)
   0,  8, 16, 24, 33, 41, 49, 57
  66, 74, 82, 90, 99,107,115,123
 132,140,148,156,165,176,181,189
 198,206,214,222,231,239,247,255
 
64色(6ビット)
   0,  4,  8, 12, 16, 20, 24, 28
  32, 36, 40, 44, 48, 52, 56, 60
  65, 69, 73, 77, 81, 85, 89, 93
  97,101,105,109,113,117,121,125
 130,134,138,142,146,150,154,158
 162,166,170,174,178,182,186,190
 195,199,203,207,211,215,219,223
 227,231,235,239,243,247,251,255
 
うん。つまり緑の色の表現が、ほかの色に比べて多いことが分かった。
これ簡単に変換できる計算式ないかな。
 
単純に一番近い色を拾ってテーブル作る関数
#deffunc setchromakeyinit local base_r_b,local base__g_,local buff
 sdim chromakey_rb,256
 sdim chromakey_g,256
 dim base_r_b,32
 base_r_b( 0) =   0,  8, 16, 24, 33, 41, 49, 57
 base_r_b( 8) =  66, 74, 82, 90, 99,107,115,123
 base_r_b(16) = 132,140,148,156,165,176,181,189
 base_r_b(24) = 198,206,214,222,231,239,247,255
 dim base__g_,64
 base__g_( 0) =   0,  4,  8, 12, 16, 20, 24, 28
 base__g_( 8) =  32, 36, 40, 44, 48, 52, 56, 60
 base__g_(16) =  65, 69, 73, 77, 81, 85, 89, 93
 base__g_(24) =  97,101,105,109,113,117,121,125
 base__g_(32) = 130,134,138,142,146,150,154,158
 base__g_(40) = 162,166,170,174,178,182,186,190
 base__g_(48) = 195,199,203,207,211,215,219,223
 base__g_(56) = 227,231,235,239,243,247,251,255
 dim buff,4
 repeat 256
  buff(0) = cnt
  buff(1) = 9
  repeat length(base_r_b)
   buff(2) = abs(base_r_b(cnt) – buff(0))
   if(buff(2)<=buff(1)){
    buff(1) = buff(2)
    buff(3) = cnt
   }
  loop
  poke chromakey_rb,cnt,base_r_b(buff(3))
  buff(1) = 5
  repeat length(base__g_)
   buff(2) = abs(base__g_(cnt) – buff(0))
   if(buff(2)<=buff(1)){
    buff(1) = buff(2)
    buff(3) = cnt
   }
  loop
  poke chromakey_g,cnt,base__g_(buff(3))
 loop
 return
広告

コメントをどうぞ(承認された後に公開されます。メールアドレスの記入は自由ですが、記入した場合でも一般公開されることはありません)

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中